2012-01-19 14 views
0

私はASP.Net WebアプリケーションでWindows認証を使用しており、コードビハインドでログインしているユーザー名を取得しようとしています。私はこのルーチンのWindowsIdentity.GetCurrent()を使用しています。名前ですが、ユーザーの名前を取得する代わりに、NT AUTHORITY \ NETWORK SERVICEを取得しています。変更する必要があるのは何ですか、またはユーザーが予想外の方法でログインしていますか?ASP.NET Webアプリケーションでログインしているユーザーを取得するにはどうすればよいですか?

+0

私たちにいくつかのコードを見せてください。 – gabsferreira

+0

匿名アクセスはまだ開いていますか? –

+0

これをチェックしてくださいhttp://forums.asp.net/t/1102996.aspx – Nappy

答えて

1

<system.web> 
    <identity impersonate="true"/> 
</system.web> 

これは、あなたのWebアプリは、現在ログインして偽装ようになりますユーザー。それにはいくつかの意味があります。重要なのは、にログインしたユーザーは、ファイル、フォルダ、データベースなどの適切な権利を持っていなければならないということです。

WindowsIdentity.GetCurrent()の代わりにUser.Identityを使用できます。

2

現在のHttpContextオブジェクトのIDを取得します使用this.Context.User.Identity.Name、:あなたのweb.configファイルに以下を追加しますhttp://msdn.microsoft.com/en-us/library/system.web.httpcontext.user.aspx

+0

James Answerに追加するには、WindowsIdentity.GetCurrent()は、アプリケーションにログインしたユーザーではなく、アプリケーションプールを実行しているユーザーを返します –

関連する問題