只允许localhost到asp.net上的某个页面

时间:2015-07-30 15:51:09

标签: asp.net iis web-config

我有一个生成PDF的页面,然后将其返回给用户。生成PDF的功能将访问其他ASP.NET页面,然后将这些页面呈现为PDF。

我想要的是只允许在本地访问这些ASP.NET页面(由PDF生成器)。因此,阻止直接访问将只允许PDF处理工具访问它,因为它在ASP.NET应用程序中本地运行。

我尝试在web.config中添加ipSecurity元素,只允许localhost访问这些aspx页面。开发时在我的机器上本地运行所有这些工作正常,但是当我部署并尝试生成报告时,我收到403错误。

我请求生成报告的页面位于FolderNameHere/ReportPage.aspx。然后,此页面上的功能将调用FolderHere/Code/Report中的页面以生成PDF。问题是我想当我访问`FolderNameHere / ReportPage.aspx时,即使该函数在本地运行,它也会将我的IP地址传递给将来访问Report文件夹页面。有没有办法阻止直接访问这些页面,除非本地运行的函数由非本地地址调用。这是我的配置,遗憾的是它没有做到这一点。

<location path="Requisite/Code/Report"> <!-- TODO: Move to WebConfig in Requisite-->
    <system.webServer>
      <security>
        <authentication>
          <anonymousAuthentication enabled="true"/>
        </authentication>
        <ipSecurity allowUnlisted="false">
          <clear />
          <add ipAddress="127.0.0.1" allowed="true"/> <!-- only allow local host -->
        </ipSecurity>
      </security>
    </system.webServer>
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
    </system.web>
  </location>

1 个答案:

答案 0 :(得分:0)

环回IP地址和localhost之间通常有区别。尝试在部署的配置上将127.0.0.1更改为localhost。