Я новичок здесь, так что медведь со мной с моим объяснением. В настоящее время мне поручено создать страницу входа в систему AD, где пользователь должен ввести свой идентификатор пользователя и пароль.Аутентификация пользователя с использованием SAMAccountName
Однако, поскольку я сделал много поисков в Интернете, я узнал, что нет возможности аутентифицировать пользователя как с UserID, так и с паролем, поскольку SAMAccountName просто нуждается в UserID.
Дело в том, что пользователь, которому я должен пройти проверку подлинности, не является пользователем, который я использую для входа в систему LDAP. Соединение LDAP всегда будет одним и тем же именем администратора и паролем, в то время как пользователям, которым я должен пройти аутентификацию, будут разные пользователи.
Большинство примеров, показанных в Интернете, объясняют, что идентификатор пользователя LDAP и имя SAMAccountName используют один и тот же идентификатор пользователя. Однако это не применимо к моей ситуации.
Поэтому я хочу спросить. Возможно ли аутентификация UserID пользователя и пароля с использованием SAMAccountName? Надеюсь, вы сможете представить пример кода, поскольку я не опытный программист по сравнению с большинством людей здесь. Благодарю.
public SearchResult GetADUser(string UserID, string Password)
{
SearchResult results;
try
{
DirectoryEntry de = GetDirectoryObject(CommonConstant.LDAP_CONNECTION_STRING);
de.Username = CommonConstant.AD_ADMIN_ID;
de.Password = CommonConstant.AD_ADMIN_Password;
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(&(objectClass=user)(objectCategory=person)(samaccountname=" + UserID + "))";
deSearch.SearchScope = SearchScope.Subtree;
results = deSearch.FindOne();
}
catch (Exception ex)
{
throw new Exception(String.Format("GetADUser() returned {0}, \"{1}\"", ex.StackTrace, ex.Message));
}
return results;
}