2017-05-27 21 views
0

/www/privateを訪問した人物が/ www/public/www/public/www/public以外の認証を要求されるように、特定のパスに対してHTTP Basic Authを使用してアクセスを制限したい。ダッシュボード、....IIS HTTP特定のURLの基本認証

注: "プライベート"、 "公開"、 "ダッシュボード" などではないフォルダがありますが、URLが書き換え

私の現在のWebConfig:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="Imported Rule 1" stopProcessing="true"> 
       <match url="\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$" ignoreCase="false" negate="true" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="index.php" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
<location path="mysite/www/private"> 
    <system.webServer> 
     <security> 
      <authentication> 
       <anonymousAuthentication enabled="false" /> 
       <basicAuthentication enabled="true" /> 
       <windowsAuthentication enabled="false" /> 
      </authentication> 
     </security> 
    </system.webServer> 
</location> 
<location path="mysite/www"> 
    <system.webServer> 
     <security> 
      <authentication> 
       <anonymousAuthentication enabled="true" /> 
       <basicAuthentication enabled="false" /> 
       <windowsAuthentication enabled="false" /> 
      </authentication> 
     </security> 
    </system.webServer> 
</location> 

私はLSOしかし、これは動作しませんIISマネージャーで enter image description here

を基本認証と匿名認証を有効に - 承認

+0

"private"、 "public"、 "dashboard"などはありません。フォルダですが、URLの書き換え "。私はプライベートに書き換える書き換えルールは表示されません。あなたが作業しているURLを教えてください。 –

+0

これを処理するnetteフレームワークを使用しています。私は細部を知らないのです。しかし、ポイントはそれらのURLはフォルダではないということです。 – user1762087

答えて

0

IIS URLRewriteモジュールは、あなたの現在の書き換えルールとそうで認証キック前にこれを要求をリライトするために、それは要求されません不可能である。 URL書き換えモジュールは、事前開始要求で 要求処理パイプラインにプラグインまたはリクエスト 段階を開始ネイティブコードモジュールであり、その後、要求されたURLのパスを評価here

から

Exceprts の書き換え規則のセットを使用します。各書き換えルールはURLパスを分析し、すべてのルール条件が満たされた場合は元のパスを新しいパスに変更します。 すべてのルールが評価された後、URL書き換えモジュール は、IISパイプライン処理の残りの部分である を通じて要求に使用される最終的なURLパスを生成します。これは、IISパイプラインのハンドラ が、URL書き換えモジュールによって生成された書き換え済みのURLに基​​づいて行われたことを意味します( )。

書き換えルールは、静的ファイルではない任意のパスをindex.phpに書き換えます。 IISパイプラインの残りの部分は、そのパスをindex.phpとみなします。あなたはindex.phpの内部で認証を実装する必要があります。簡単なIISモジュールを簡単に書くことができます。SO questionがこれについて語ります。 URLをチェックして401などを送信するためのロジックを少し追加する必要があります。