0

.Net4.0の使用PrincipalContextを作成するためのコード行は次のとおりです。

PrincipalContext context = new PrincipalContext(ContextType.Domain, "domain");

しばらく前に、ドメイン名を指定する必要はなく、代わりにシステム変数またはhttpcontext変数を使用してドメイン名を渡すコードスニペットを見ました。user.logondomainのようなものでしたが、もう見つかりません。それはuser.identity.nameからドメインを取り除くことではありませんでした。

これは、ASP.NETWebアプリでWindows認証を使用しています。

4

1 に答える 1

1

これは機能するはずです:

string domain = "defaultDomain";
string[] splittedAuth = Request.ServerVariables["LOGON_USER"].Split('\\');
domain = (splittedAuth.Count() > 1) ? splittedAuth[0] : domain;
PrincipalContext context = new PrincipalContext(ContextType.Domain, domain);

Environment.UserDomainNameプロパティを参照している場合、これは間違いなく必要なものではありません。これは、コードが実行されるアカウントのドメインを返すためです。これは、ASP.NETのシナリオではありません。

于 2012-12-18T20:31:34.740 に答える