認証または認可を使用しない既存のmvc webapiシステムがあり、Windows認証を追加しようとしています。静的データaspnet mvc system AuthenticateRequestイベントが発生したときにユーザーがいない
は、新しいシステムは、Windows認証を使用するように設定し、私はApplication_AuthenticateRequest
HttpContext.Current.User
にフック結果としてnullでなく、要求を送信するユーザーの正しいWindowsPrincipal
と人口Identity
性質を持っています。
web.config
を新しい(稼働中の)システムに適合させると、すべての着信要求にNULL HttpContext.Current.User
がApplication_AuthenticateRequest
になります。
パイプラインの後半で発生するApplication_AuthorizeRequest
イベントハンドラを使用していることを示唆する投稿が表示されました。期待どおり、この時点でHttpContext.Current.User
はnullではありませんが、Identity
プロパティは、偽装レベルがAnonymous
であると設定されており、重要なことは認証されていません。
認証を追加しようとしている私の運用システムが何らかの形で偽装を使用しないように設定されていると仮定しても、新しい概念証明システムがあります。その結果、パイプラインの認証ステージでは、匿名ユーザーがHttpContextに追加されます。これは、パイプラインの承認ステージで表示されています。
私の質問は、要求を送信したユーザーにアクセスできるように偽装を使用するように私の運用システムをどのように設定するのですか?
システムはイントラネットに配備されているため、ユーザーのWindows IDが必要なだけで十分なセキュリティが得られます。
私のWeb設定には、次のものが含まれています。両方のシステム(生産・POC)で
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
<authentication mode="Windows" />
<identity impersonate="true" />
<httpModules>
</httpModules>
</system.web>
と私は両方から<identity/>
要素を削除しようとしていると、効果がないように見えます。私はVS2015