Seit Windows NT habe die Verzeichnisdienste Bedeutung erlangt. Man spricht plötzlich von Directorys wie z.B. LDAP. Um auf NT Informationen einfach zuzugreifen, hat MS ein Addon namens ADSI (Active Directoy Service Interface) geschaffen. Obwohl der Name es vermuten lässt hat ADSI zunächst nichts mit Active Driectory zu tun, sondern liefert die API zum Zugriff auf diese Information.
Bei Windows NT 4.0 muss ADSI extra installiert werden. Bei Windows2000 ist das alles bereits Bestandteil des Betriebsystems.
Die aktuelle ADSI 2.5 Version liegt dem Artikel bei.
Wie schon aus anderen Artikeln auf Devtrain ersichtlich, wird der provider "WinNT" verwendet. Wir wollen nun zeigen wie man eine Benutzeranmeldung aus dem Browser über die Verzeichnisinformation handeln kann. Sie sparen Sich dabei die eigene Datenbank für das speichern der Userinfo.Zunächst bauen wir ein einfaches Formular mit Usernamen und Password. Diese Eingabe wird gegen den WinNT ADSI Provider verfiziert. Der Username muss immer in der Form "Domain/User" angegeben werden. Deshalb belegen wir diese in der Input Box vor.
Ebenso muss die Domain angegeben werden in der der Benutzer verwaltet wird um per ADSI die Abfrage zu machen.
set oIIS = oADSI.OpenDSObject("WinNT://DomainName" , sUser, sPassword,0) |
Wenn das Objekt zugewiesen werden konnte, war die Anmeldung erfolgreich. Über das Error Object kann der Fehlerfall behandelt werden. Durch ein Post auf eigene ASP Siete kann dort die Formularbehandlug erfolgen
Anbei der komplette Code.
<%@ Language=VBScript %> <HTML> <BODY> <% dim sComputerName dim sUser, sPassword sComputerName = "mycomputer" sUser = Request.Form("user") sPassword = Request.Form("password") if sUser <> "" then set oADSI = GetObject("WinNT:") on error resume next set oIIS = oADSI.OpenDSObject("WinNT://DomainName" , sUser, sPassword,0) if err.number = 0 then Response.Write "Logon OK.<BR>" else Response.Write "Logon fehlgeschlagen.<BR>" end if end if %> <FORM action=logon.asp method=post> <TABLE BORDER=1> <TR><TH> User</TH><TD> <INPUT type="text" name=user VALUE="DomainName"> </TD></TR> <TR><TH> Password</TH><TD> <INPUT type="password" name=password> </TD></TR> </TABLE> <INPUT type="submit" value="Submit" id=submit1 name=submit1> <INPUT type="reset" value="Reset" id=reset1 name=reset1> </FORM> </BODY> </HTML> |
www.microsoft.com/adsi