代码之家  ›  专栏  ›  技术社区  ›  gatapia

是否可以将Web.config中的位置配置为只允许本地连接

  •  19
  • gatapia  · 技术社区  · 15 年前

    我在一个ASP.Net应用程序中有一个页面(它的Mvc实际上并不重要),我只允许从本地计算机连接到此页面。我想在Web.config中执行以下操作:

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

    我知道这是可能的,只要在页面代码后面(或控制器)签入一个简单的检查 its even possible just with IIS configuration 但我希望使用Web.config配置,因为这是我认为最优雅的解决方案。有人知道这是否可能吗?

    5 回复  |  直到 7 年前
        1
  •  30
  •   mybrave Shamseer K    7 年前

    您可以要求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>
    

    More info

    编辑:正如Mike在下面的评论中指出的,这需要安装IP和域限制模块。谢谢迈克!

        2
  •  4
  •   lance    15 年前

    这不是您要求的,但是您可以指定用户 属于 本地机器。我无法想象这是实际的,除非它是少数用户你想授权。

    <location path="resources">
      <system.web>
        <authorization>
          <allow users="LOCALMACHINENAME\UsernameOfTrustedUser"/>
          <deny users="*"/>
        </authorization>
      </system.web>
    </location>
    
        3
  •  2
  •   Jennifer Zouak    15 年前
    1. 为机器创建一个非DNS别名,即“PrivateHostName”。
    2. 在本地主机文件中将此值设置为指向127.0.0.1。
    3. 为网站设置一个(IIS)主机头,使其只响应地址为“PrivateHostName”的请求。
    4. 对于所有本地呼叫,请使用专用主机名。

    远程客户端将无法解析主机名。

    您可以使用绑定到虚拟网络适配器的专用ip地址来保护它,该虚拟网络适配器实际上不会响应外部请求。

        4
  •  1
  •   Robert Bolton    9 年前

    如果你想指定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>
    
        5
  •  0
  •   Payton Byrd    15 年前

    您可以创建自己的配置节,该节将成为web.config的一部分,然后使用该设置控制global.asax Session_Start中的行为。