Получить домен, выбранный PrincipalContext
Я создаю пользовательский функционал входа для asp.net который проверяет с помощью active directory. Пользователь должен иметь возможность войти только под своим именем пользователя или с его именем пользователя и доменом (и паролем в обоих случаях).
Код:
AuthUser user = Authentication.getDomainAndUserName(givenUsername);
bool validAccount = false;
PrincipalContext network = null;
if (user.domain != "") network = new PrincipalContext(ContextType.Domain, user.domain);
else network = new PrincipalContext(ContextType.Domain);
if (UserPrincipal.FindByIdentity(network, IdentityType.SamAccountName, user.username) != null) {
validAccount = network.ValidateCredentials(givenUsername, givenPassword, ContextOptions.Negotiate);
}
"AuthUser" содержит имя пользователя и, если задано, домен. Теперь, если пользователь явно не указал домен, все еще работает нормально.
Так что если вы позвоните
new PrincipalContext(ContextType.Domain);
Кажется, что домен установлен автоматически.
В таком случае, как я могу узнать домен, который он использовал?