web-dev-qa-db-ja.com

web.configの単一のフォルダーに対して匿名認証を許可しますか?

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

IISマネージャーでは、フォルダーの認証モードを設定できますが、設定はC:\Windows\System32\inetsrv\config\applicationHost.configファイル ここで説明

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

そうでなければ誰もが知っていますか?

どうもありがとう

42
Chris Fewtrell

つかいます <location>構成タグ、および<allow users="?"/>匿名のみを許可するか<allow users="*"/> すべてのために:

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

最初のアプローチは、<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" />

overrideModeはIISのセキュリティ機能です。 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>
53
Tim Lewis
<location path="ForAll/Demo.aspx">
 <system.web>
  <authorization>
    <allow users="*" />
  </authorization>
 </system.web>
</location>

さらに:Webサイトを介してそのフォルダーに何かを書き込みたい場合は、フォルダーにIIS_User権限を付与する必要があります

3
Imran Rizvi

動作させるには、次のようにディレクトリを作成します。

プロジェクトの公開制限

そこで、パブリックフォルダーの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

お役に立てば幸いです。

1
Rodrigo

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

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

最初は場所タグを使用しましたが、機能しませんでした。

0
Satbir