Using C# to authenticate user against LDAP

后端 未结 2 987
天命终不由人
天命终不由人 2020-11-30 22:20

I\'m using DirectorySearcher to search for a user entry in LDAP server.

DirectoryEntry de = new DirectoryEntry();
de.Path = \"LDAP://myserver/OU=People,O=m         


        
2条回答
  •  旧巷少年郎
    2020-11-30 23:15

    This username, password within this line:

    DirectoryEntry("LDAP://myserver/OU=People,O=mycompany", username, password);
    

    should be for an account that has permission for directory lookup. It could be a service account or testing purpose try with your own. This shouldn't be the user/pass of someone who you are trying to authenticate.

    If you want to authenticate, you can use following steps using PrincipalContext:

    using(var context = new PrincipalContext(ContextType.Domain, "mydomain", "mydomain\serviceAcct", "serviceAcctPass")) {
     //Username and password for authentication.
     return context.ValidateCredentials(username, password); 
    }
    

    "serviceAcct" = an account within domain users that has permission for directory lookup. "serviceAcctPass" = password for that service account. As I said, for testing you can try with your own user/pass context.

    Also, make sure supplied username has either "domain\username" or "username@domain" formatting.

提交回复
热议问题