2

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);

ドメインは自動で設定されているようです。

その場合、どのように使用されたドメインを見つけることができますか?

4

1 に答える 1

0

UserPrincipal.FindByIdentity() から返されたユーザー プリンシパルから使用されるドメインをいつでも取得できます。

于 2013-08-16T08:45:50.703 に答える