2

フォーム認証が有効になっている IIS7 で ASP.net MVC3 アプリを実行しています。また、アプリケーション内のフォルダーの下にホストされている共同ホストの Nancy サービスもあります。

問題は、Nancy サービスが 401 (Unauthorized) ステータスを返すたびに、リクエストが自動的にログイン ページにリダイレクトされることです。

そのフォルダーから返される 401 エラーを無視し、元の json 応答のみを返すように ASP.net に指示する方法はありますか?

4

2 に答える 2

0

これが古いことは知っていますが、とにかく返信します。

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.websystem.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>

これで、フォルダーの認証が無視されます。

于 2013-04-24T11:45:29.890 に答える