IISに、ページを表示しているユーザーのActiveDirectoryユーザー名を取得してもらいたい。これは可能ですか?ASP.NET認証を介して実行できる可能性があると思いましたが、試してみると、「401 Unauthorized:Access isdenied duetoinvalidcredentials」というエラーメッセージが表示されました。基本的に、私がやりたいのは、Webページに現在のユーザー名を取得させ、この人が特定のセキュリティグループのメンバーであるかどうかを比較し、メンバーである場合はコンテンツを表示することです。これらはすべて、VS2010の組み込みテストサーバーを使用するローカルPCでうまく機能しますが、ADの詳細を取得するだけです。すべてが機能するようになったので、IIS7を実行しているテストサーバーに移動して、そこで機能させたいと思います。
default.aspxコードビハインド(ローカルマシンで機能)にある唯一のコードは次のとおりです。
string[] arr = System.Web.HttpContext.Current.Request.LogonUserIdentity.Name.Split('\\');
if (arr.Length > 0)
{
lblDomain.Text = arr[0].ToString();
lblUser.Text = arr[1].ToString();
}
私がここ(http://stackoverflow.com/questions/10584545/activedirectory-current-username-in-asp-net)で見つけたものから、私が望むことは可能であるように見えますが、それは私と関係があるのだろうかと思いますコードビハインド。また、Web.Configに何か特別なものが必要かどうかもわかりません。そこには次のものがありましたが、500エラーが発生しました。
<authentication mode="Windows"/>
<identity impersonate="true"/>
上記のStackOverflowの質問に対する回答を試しましたが、まだ500エラーが発生しています。ヒントをいただければ幸いです。
また、次のことを試しましたが、それでも500エラーが発生します。どこが間違っているのかわからない。
string userName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
と:
string userName = Environment.UserName;