限制访问运行在IIS7/ASP.NET上的特定URL

3
我正在部署一个公共的 ASP.NET 网站到 IIS7 Web Farm 上。
该应用程序在 3 台 Web 服务器上运行,并位于防火墙后面。
我们想要在网站上创建一个仅限内部用户访问的单个页面。它主要用于诊断、触发缓存过期等。
/admin/somepage.aspx
如何最好地控制对此页面的访问?我们需要:
1. 防止所有外部(公共)用户访问 URL。 2. 允许特定的内部用户从特定的 IP 或网络访问该页面。
这种访问控制应该在 (a) 网络级别,(b) 应用程序级别等进行吗?
3个回答

2
我发现最好的解决方案是在我们的F5负载均衡器上放置irule。
我们创建了一个规则,使负载均衡器会拒绝所有特定目录的外部请求。在内部,我们仍然可以通过直接连接到服务器来访问这些页面。

1

以下是如何为特定用户保护特定页面的方法,仅限于他们访问

<configuration>
    <location path="admin/somepage.aspx">
        <system.web>
            <authorization>
                <allow users="User1,User2" />
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
</configuration>

要设置允许的IP,您需要通过 IPv4地址和域名限制 在IIS中配置网站,在其中添加一个通配符 拒绝条目 和指定的 允许条目

此外,您还可以以编程方式设置所有这些内容。


0
一个简单的实现方法是在IIS中将文件安全设置为仅集成Windows身份验证。
然后在该文件的代码后台中,检查用户的ID。如果他们已经通过身份验证,他们将拥有一个ID,并允许他们访问该页面。
if(!HttpContext.Current.User.Identity.IsAuthenticated)
{
   //Direct user to other page or  display message.
}

当用户访问该页面时,它会要求他们输入他们的网络登录信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接