Active Directory に対して検証する asp.net のカスタム ログイン機能を作成しています。ユーザーは、自分のユーザー名のみ、またはユーザー名とドメイン (および両方の場合パスワード) を使用してログインできる必要があります。
コード:
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);
ドメインは自動で設定されているようです。
その場合、どのように使用されたドメインを見つけることができますか?