Avatar billede entracore Nybegynder
09. juli 2002 - 13:16 Der er 8 kommentarer og
1 løsning

ADSI Problemer

Hey

Når min VB applikation starter henter den brugernavnet på den bruger der er logget på windows. Brugeren er bruger på et domæne og ikke lokal bruger på maskinen.

Brugernavnet valideres op imod en tabel, indeholdende brugerprofiler. Hvis brugernavnet ikke findes i tabellen skal brugeren promptes med en dialogbox hvor brugeren skal indtaste et nyt brugernavn og password.

Brugernavnet og passwordet skal så valideres op imod de brugerkonti der findes i domænet.

Det er så her at jeg står af - for hvordan gør man det.
Jeg har læst noget omkring ADSI (Active Directory Service Interface) som skulle kunne validere brugeroplysninger. Jeg kan dog ikke rigtig se mig klog på det.

Jeg håber at der er nogle der kan komme med nogle konkrete forslag og eksempler.

Sig til hvis jeg skal uddybe min problemstilling.

På forhånd tak.
Avatar billede martin_moth Mester
09. juli 2002 - 14:39 #1
Er det fordi du ikke kan finde de brugerkonti der er på domænet - eller fordi du har dem, men ikke kan validere op i mode dem (bare for at få det smukt udskåret i pap for min skyld;o)
Avatar billede martin_moth Mester
09. juli 2002 - 14:40 #2
Wops - så at der var 200 pts på spil - så er dit spørgsmål nok ikke så simpelt som jeg troede/håbede :o(
Avatar billede webcon Nybegynder
09. juli 2002 - 15:42 #3
Avatar billede webcon Nybegynder
09. juli 2002 - 16:44 #4
Avatar billede entracore Nybegynder
09. juli 2002 - 20:50 #5
Webcon >>Det er desværre ikke lige det jeg er ude efter. De 2 eksempler viser hvordan man henter en liste af bruger fra en Exchange server.

Det jeg blot vil er at validere et brugernavn og en adgangskode som en bruger har indtastet.

Det er faktisk det sammen som Windows Authentication under MS IIS 5.
Avatar billede tubber Juniormester
11. juli 2002 - 23:10 #6
Følgende virker i VB
Du skal have ref. Active DS Type Library

Option Explicit
Dim dso As IADsOpenDSObject
Dim domain As IADsDomain
Dim vUser As String
Dim vPass As String
Dim vDomain As String

Private Sub cmdClose_Click()
    Unload Me
    End
End Sub

Private Sub cmdVerify_Click()
On Local Error GoTo ErrorHandler
    vUser = txtUser.Text
    vPass = txtPass.Text
    vDomain = txtDomain.Text
    Set dso = GetObject("WinNT:")
    Set domain = dso.OpenDSObject("WinNT://" & vDomain & "", "" & vUser & "", "" & vPass & "", ADS_SECURE_AUTHENTICATION)
Exit Sub
ErrorHandler:
    If Err = -2147023570 Then MsgBox "Unknown User or Bad Password", , "Login Failure"
    If Err = -2147467259 Then MsgBox "Unknown Domain", , "Login Failure"
Exit Sub
End Sub

'De efterfølgende markere bare teksten ved tab skifte
Private Sub txtUser_GotFocus()
txtUser.SelStart = 0
txtUser.SelLength = Len(txtUser.Text)
End Sub

Private Sub txtPass_GotFocus()
txtPass.SelStart = 0
txtPass.SelLength = Len(txtPass.Text)
End Sub

Private Sub txtDomain_GotFocus()
txtDomain.SelStart = 0
txtDomain.SelLength = Len(txtDomain.Text)
End Sub

'Hvis din Domain Controler er en unix/bsd så skal du hvor der
'står winnt ud med unix....

/Tubber
Avatar billede entracore Nybegynder
12. juli 2002 - 18:01 #7
Tusind tak tubber - Gider du at svare på spørgsmålet så du kan få dine point ;-)
Avatar billede tubber Juniormester
17. juli 2002 - 10:07 #8
Er hermed gjort :O)
Avatar billede entracore Nybegynder
18. juli 2002 - 10:31 #9
Og jeg siger mange tak for besvarelsen ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester