web-dev-qa-db-ja.com

ローカル接続のみを許可するようにWeb.configで場所を構成することは可能ですか?

ASP.Netアプリにページがあり(実際にはMvcですが重要ではありません)、ローカルマシンからこのページへの接続のみを許可したいと思います。 Web.configで次のようなことをしたいと思います。

<location path="resources">
  <system.web>
    <authorization>
      <allow ips="local"/>
    </authorization>
  </system.web>
</location>  

これは、ページコードビハインド(またはコントローラー)の簡単なチェックで可能であることを知っています IIS構成 でも可能ですが、Web.configが大好きですこれが私の意見では最もエレガントな解決策になるので、config。これが可能かどうか誰か知っていますか?

19
gatapia

IISに、Web.config内からIPアドレスによってリソースへのアクセスを制限するように依頼できます。

<location path="resources">
  <system.webServer>
    <security>
      <ipSecurity allowUnlisted="false">
        <clear/>
        <add ipAddress="127.0.0.1"/>
      </ipSecurity>
    </security>
  </system.webServer>
</location>

詳細

編集:マイクが以下のコメントで指摘したように、これにはIPおよびドメイン制限モジュールがインストールされている必要があります。ありがとうマイク!

30
Daniel

これはあなたが求めていたものではありませんが、ユーザーを指定することができますofローカルマシン。承認したいユーザーの数が少ない場合を除いて、これが実用的であるとは想像できません。

<location path="resources">
  <system.web>
    <authorization>
      <allow users="LOCALMACHINENAME\UsernameOfTrustedUser"/>
      <deny users="*"/>
    </authorization>
  </system.web>
</location>
4
lance
  1. マシンの非DNSエイリアス、つまり「PrivateHostName」を作成します。
  2. ローカルホストファイルでこの値を127.0.0.1を指すように設定します。
  3. 「PrivateHostName」をアドレス指定する要求にのみ応答するように、Webサイトの(IIS)ホストヘッダーを設定します。
  4. すべての市内通話には、プライベートホスト名を使用します。

リモートクライアントはホスト名を解決できません。

実際には外部要求に応答しない仮想ネットワークアダプターに関連付けられた専用IPアドレスを使用して、より安全にすることができます。

2
Jennifer Zouak

IPアドレスの範囲を指定したい場合は、これも役立つことがわかりました。次のコードブロックをweb.configに追加できます

<system.webServer>
    <security>
        <ipSecurity allowUnlisted="false">
            <clear/>
            <add ipAddress="95.110.115.0" subnetMask="255.255.255.0"/>  
            <!--blocks range 95.110.115.0 to 95.110.115.255-->    
            <add ipAddress="95.110.0.0" subnetMask="255.255.0.0"/>      
            <!--blocks range 95.110.0.0 to 95.110.255.255-->    
            <add ipAddress="95.0.0.0" subnetMask="255.0.0.0"/>          
            <!--blocks range 95.0.0.0 to 95.255.255.255-->  
        </ipSecurity>
    </security>
</system.webServer>
1
Robert Bolton

Web.configの一部となる独自の構成セクションを作成し、その設定を使用してglobal.asaxSession_Startの動作を制御できます。

0
Payton Byrd