我对IIS运行项目还是比较陌生,所以这里可能没有涉及到所有方面。
我们正在运行一个Web应用程序,其中一个解决方案中包含许多项目。虚拟目录中唯一使用的项目是Web项目。现在,我需要限制对某个URL序列的访问,并且只允许对几个特定IP地址进行访问。基于该URL运行代码的项目位于主虚拟目录外部,并且该项目正在编译为dll文件。
我试图在有问题的项目内添加一个新的带有限制的web.config,但这没有任何效果。下面的示例不允许IP限制,仅允许整个路径。
<security>
<requestFiltering>
<denyUrlSequences>
<add sequence="/MyUrl" />
</denyUrlSequences>
</requestFiltering>
</security>
而且据我所知,添加位置仅适用于当前虚拟目录。
向该URL添加特定于IP的限制的好方法是什么?可以在一般的web.config文件中完成吗?
您可以使用URL重写模块和此重写规则来防止特定IP到达特定URL。
这里有一个演示供您参考:
<rule name="test" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{REMOTE_ADDR}" pattern="xxx.xxx.xxx.xxx" />
<add input="{URL}" pattern="^/MyUrl" />
<action type="CustomResponse" statusCode="401" statusReason="permission required" statusDescription="Access is denied due to invalid credentials." />
</rule>