2012-04-27 3 views
35

このシナリオでは、カスタム認証&メンバーシッププロバイダを使用しているAsp.Netアプリケーションがありますが、アプリケーション内の特定のフォルダに完全に匿名でアクセスできるようにする必要があります。 IISマネージャでweb.config内の単一フォルダに対して匿名認証を許可しますか?

は、フォルダの認証モードを設定することができますが、設定は、インストールを簡単にするためにC:\Windows\System32\inetsrv\config\applicationHost.configファイルas described here

内に保存されている私は私のweb.configファイル内にこれを設定することができれば、それは素晴らしいことですいくつかの試みの後、私はこれが可能でないかもしれないと思う。

誰にも分かりませんか?また

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

なぜ、そのフォルダに匿名を許可しますか? –

+0

アプリのほとんどはアクセスを購入した人々にのみアクセス可能であるべきですが、(アクセスを購入するよう誘惑するために)いくつかの無料コンテンツを外部に公開したいと考えています。 –

+0

最も一般的な質問と回答は、与えられたように非常に簡単です –

答えて

35

使用<location>構成タグ、および<allow users="?"/>あなたは、ウェブサイトを通じて、そのフォルダに何かを書きたい場合フォルダにIIS_User権限を与える必要があります。

+10

これは私が最初に試みたものですが、うまくいきません。私は、これらの場所の認証設定は、フォーム認証で実行している場合にのみ有効であると考えています。 –

+0

これはChris Fewtrellの場合のようです。確かに、Windows認証では、これを設定することは重要ではないようです。 – mattpm

2
<location path="ForAll/Demo.aspx"> 
<system.web> 
    <authorization> 
    <allow users="*" /> 
    </authorization> 
</system.web> 
</location> 

を::匿名のみ、またはすべてのための<allow users="*"/>できるようにする

感謝

41

最初に取る方法は、

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

そのアプローチがうまくいかない場合、あなたはIIS applicationHostに小さな変更を加える必要とする次のようなアプローチを取ることができます:匿名またはすべてについて<allow users="*"/>できるように<location>構成タグ、および<allow users="?"/>を使用してweb.config .config。

まず、Cで "許可" に "拒否" からanonymousAuthenticationセクションのoverrideModeDefaultを変更:\ WINDOWS \ system32 \ inetsrv \ config \にあるapplicationHost.config:

<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> 
+0

-1 localyをホスティングしないのはどうですか? apphost.confにアクセスできないときは? – Dementic

+8

元の投稿はapplicationHost.configファイルを特に参照しました。あなたのシナリオの特定の制限に合わない元の投稿では、回答に対する投票が厳しいようです。 –

+0

"これを私のweb.config内に設定できたらうれしいです" – Dementic

0

を、それは私がこのように私のディレクトリ作成に機能させるには:

プロジェクト 公開

を制限

私のパブリックフォルダのwebconfigを編集しました:

そして、私の制限されたフォルダの:

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

は私が助けたと思っています。

0

ウェブを追加しました。特定のフォルダへの設定は、「ユーザー」(VS 2015、C#の) と

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

は当初、私は、ロケーションタグを使用追加次のコードを言うが、それは働いていませんでした。

関連する問題