2016-05-18 5 views
0

認証または認可を使用しない既存のmvc webapiシステムがあり、Windows認証を追加しようとしています。静的データaspnet mvc system AuthenticateRequestイベントが発生したときにユーザーがいない

は、新しいシステムは、Windows認証を使用するように設定し、私はApplication_AuthenticateRequestHttpContext.Current.Userにフック結果としてnullでなく、要求を送信するユーザーの正しいWindowsPrincipalと人口Identity性質を持っています。

web.configを新しい(稼働中の)システムに適合させると、すべての着信要求にNULL HttpContext.Current.UserApplication_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

答えて

0

を通じてのみIISExpressでホスティングしています。この段階で

はこれがすべてダウンIISの構成にしたが判明します。

IISExpressでVS2015内のサイトをホストする場合、IISExpressで使用されるapplicationhost.configファイルはsoureと共にローカルに格納されます。具体的には、$(SolutionDir).vs \ configフォルダにあります。

私の実動システムの設定では、Windows認証が無効にされ、匿名認証が有効になっていて、POCシステムには逆の機能がありました。この設定ファイルを変更すると私の問題は解決しました。問題は別のユーザーのPCで動作するのか、間違ったapplicationhost.configファイルが生成されるのでしょうか?

関連する問題