0

nHibernateのIPreUpdateListenerを使用して監査レポートをログに記録するASP.NETアプリがあります。リスナーイベントで現在のユーザーを設定するために、System.Security.Principal.WindowsIdentity.GetCurrent()を使用していました。これは、マシンでデバッグする場合は正常に機能しますが、ステージングサーバーに移動すると、要求元のユーザーではなく、ASP.NETプロセスの資格情報を取得します。

ASP.NETページでは、Request.LogonUserIdentity(統合認証を使用しているため正常に機能します)を使用できますが、イベントに直接渡すことなく、このユーザーを直接参照するにはどうすればよいですか?この情報は実際には中間のイベント/呼び出しに属していないため、パイプラインを介してこの情報を渡す必要はありません。

4

1 に答える 1

1

コードが ASP.NET コンテキストで実行されている場合、HttpContext.Current(static) には現在の Http コンテキストが含まれます。null かどうかはいつでもテストできます。null でない場合は、 を取得できますHttpContext.Current.Request

ただし、この要求コンテキスト内に存在する ID は、Web サイト (IIS、Cassini、IIS Express、またはカスタム) が ID を処理する方法に最終的に依存します。

于 2011-02-14T15:21:44.127 に答える