我需要一个 C# 代码,仅当我的应用所在的服务器将向该文件发送请求时才允许访问该文件。如果来自浏览器的用户试图访问它,它将给出“403 Forbidden”错误消息。
预先感谢。
您可以禁用对位于受限制文件目录中的本地 web.config 文件中文件的外部访问。ASP.MET MVC Views 文件夹中使用了类似的方法。
本地 web.config
<configuration>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
只需确保该文件位于文件系统上 IIS 无法访问的位置(如果使用默认目录:在wwwroot之外),然后使用 C# 访问该文件。
这样他们就无法浏览到它。
如果是用于 IIS,请查看ipSecurity Element [IIS Settings Schema]
<ipSecurity allowUnlisted="false">
<clear/>
<!-- Allow only requests from the local machine. -->
<add ipAddress="127.0.0.1" allowed="true"/>
</ipSecurity>