フォーム認証が有効になっている IIS7 で ASP.net MVC3 アプリを実行しています。また、アプリケーション内のフォルダーの下にホストされている共同ホストの Nancy サービスもあります。
問題は、Nancy サービスが 401 (Unauthorized) ステータスを返すたびに、リクエストが自動的にログイン ページにリダイレクトされることです。
そのフォルダーから返される 401 エラーを無視し、元の json 応答のみを返すように ASP.net に指示する方法はありますか?
フォーム認証が有効になっている IIS7 で ASP.net MVC3 アプリを実行しています。また、アプリケーション内のフォルダーの下にホストされている共同ホストの Nancy サービスもあります。
問題は、Nancy サービスが 401 (Unauthorized) ステータスを返すたびに、リクエストが自動的にログイン ページにリダイレクトされることです。
そのフォルダーから返される 401 エラーを無視し、元の json 応答のみを返すように ASP.net に指示する方法はありますか?
これが古いことは知っていますが、とにかく返信します。
MVC Web サイト用の Forms Auth があり、Nancy を API として使用しているようです/nancy
そのディレクトリ パスでの認証を無効にするにlocationは、web.config に を追加します。Nancy を実行するようにセットアップするために既に 1 つある可能性があります。
何かのようなもの:
<location path="nancy">
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</httpHandlers>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="Nancy" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</handlers>
</system.webServer>
</location>
ここで行う必要があるのは、匿名アクセスを許可することだけです。これは、に追加することで実行できauthorizationますsystem.web。system.web次のように更新します。
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpHandlers>
<add verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" path="*"/>
</httpHandlers>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
これで、フォルダーの認証が無視されます。