4

我需要限制对 elmah.axd 的访问。elvue.html 基于某些 IP 地址。该网站位于 IIS 6.0 和 .Net 3.5 上。我无法使用表单身份验证或 Windows 身份验证。我正在考虑使用http模块的方法。 http://www.codeproject.com/Articles/16384/Using-ASP-NET-HTTP-Modules-to-restrict-access-by-I

我不能在 web.config 中使用限制访问的方法,因为这仅适用于 IIS 7。 http://boseca.blogspot.com/2010/12/programmatically-addremove-ip-security.html

有人对我如何解决这个问题有意见吗?请指教。

4

2 回答 2

4

我使用以下代码实现了这一点:

protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            var ClientSourceIP = Context.Request.Headers["CLIENT_SRC_IP"];
            var HTTPClientSourceIP = Context.Request.Headers["HTTP_CLIENT_SRC_IP"];
            var isValidClientSourceIP = ClientSourceIP == null || 
                Regex.IsMatch(ClientSourceIP, ConfigurationManager.AppSettings["ValidClientSourceIP"]);
            var isValidHTTPClientSourceIP = HTTPClientSourceIP == null || 
                Regex.IsMatch(HTTPClientSourceIP, ConfigurationManager.AppSettings["ValidHTTPClientSourceIP"]);

            if (
                (Context.Request.Path.Contains("elmah.axd") || Context.Request.Path.Contains("elvue.aspx")) &&
                ((isValidClientSourceIP && isValidHTTPClientSourceIP) == false)
            )
            {
                this.Context.Response.StatusCode = 403;
                return;
            }
        }
于 2013-02-22T23:19:46.953 回答
0

我在 IIS 7 中使用一个模块完成了此操作:IP 限制。

这是有关如何在 IIS 6 中执行此操作的指南:http: //www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/4117d9e2-c7e0-46db-88f6-6e804b4325b0.mspx? mfr=true

另外,您是否尝试过像这样修改 web.config:http ://weblogs.asp.net/gurusakar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder -in-web-config.aspx

于 2013-02-20T23:28:09.800 回答