52

カスタム認証とメンバーシップ プロバイダーを使用する Asp.Net アプリケーションがありますが、アプリケーション内の特定のフォルダーへの完全な匿名アクセス (つまり) を許可する必要があります。

IIS マネージャーでは、フォルダーの認証モードを設定できますが、ここで説明されているようC:\Windows\System32\inetsrv\config\applicationHost.configに、設定はファイル内に保存されます。

インストールを簡単にするために、web.config 内でこれを設定できれば素晴らしいと思いますが、数回試行した後、これは不可能かもしれないと思います。

他に誰か知っていますか?

どうもありがとう

4

5 に答える 5

71

<location>最初のアプローチは、構成タグを使用して web.config を変更<allow users="?"/>し、匿名または<allow users="*"/>すべてを許可することです。

<configuration>
   <location path="Path/To/Public/Folder">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>

この方法がうまくいかない場合は、IIS の applicationHost.config を少し変更する必要がある次の方法を使用できます。

まず、C:\Windows\System32\inetsrv\config\applicationHost.config で、anonymousAuthentication セクションの overrideModeDefault を "Deny" から "Allow" に変更します。

<section name="anonymousAuthentication" overrideModeDefault="Allow" />

overrideModeIIS のセキュリティ機能です。applicationHost.config のシステム レベルでオーバーライドが許可されていない場合、web.config でオーバーライドを有効にすることはできません。ターゲット システムでこのレベルのアクセス権がない場合は、ホスティング プロバイダーまたはシステム管理者と話し合う必要があります。

次に、設定overrideModeDefault="Allow"後、web.config に以下を追加できます。

<location path="Path/To/Public/Folder">
  <system.webServer>
    <security>
      <authentication>
        <anonymousAuthentication enabled="true" />
      </authentication>
    </security>
  </system.webServer>
</location>
于 2012-07-11T14:20:47.240 に答える
53

<location>構成タグを使用<allow users="?"/>し、匿名のみまたは<allow users="*"/>すべてを許可するには、次のようにします。

<configuration>
   <location path="Path/To/Public/Folder">
      <system.web>
         <authorization>
            <allow users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>
于 2012-04-27T13:05:29.457 に答える
3
<location path="ForAll/Demo.aspx">
 <system.web>
  <authorization>
    <allow users="*" />
  </authorization>
 </system.web>
</location>

さらに、ウェブサイトを介してそのフォルダーに何かを書きたい場合は、フォルダーに IIS_User アクセス許可を与える必要があります

于 2012-04-27T13:17:10.430 に答える
1

それを機能させるために、次のようにディレクトリを構築します。

プロジェクト公開制限

そこで、パブリック フォルダーの webconfig を編集しました。

<location path="Project/Public">
    <system.web>
      <authorization>
        <allow users="?"/>
      </authorization>
    </system.web>
  </location>

そして、私の制限付きフォルダーの場合:

 <location path="Project/Restricted">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorizatio>
    </system.web>
  </location>

* と ? の仕様については、こちらを参照してください。

https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/authorization/add

お役に立てば幸いです。

于 2014-02-24T20:20:58.347 に答える
0

「Users」という特定のフォルダーにweb.configを追加し(VS 2015、C#)、次のコードを追加しました

<?xml version="1.0"?>
 <configuration>
  <system.web>
    <authorization>     
    <deny users="?"/>
  </authorization>
</system.web>
</configuration>

最初はロケーションタグを使用しましたが、うまくいきませんでした。

于 2016-08-19T16:46:28.810 に答える