【问题标题】:How to IP whitelist for a single URL in IIS如何在 IIS 中为单个 URL 设置 IP 白名单
【发布时间】:2010-08-01 00:32:38
【问题描述】:

我有一个由多个 .aspx 页面组成的 ASP.NET 应用程序。我希望其中一个 .aspx 页面只能由一组特定的 IP 访问。这可能吗?

我知道您可以在网站级别加入 IP 白名单,但您可以在应用程序中为单个 URL 加入 IP 白名单吗?

【问题讨论】:

    标签: asp.net whitelist


    【解决方案1】:

    以下资源演示了如何在 ASP.NET 中检测客户端 IP:

    http://bytes.com/topic/asp-classic/answers/439176-how-get-clients-ip-address-asp-net

    获得 IP 后,从您选择的存储机制中加载白名单,可能在 Init 事件期间(如果在页面中),如果 IP 无法匹配,则像这样响应(如果没有,请使用 HttpContext.Current.Response在页面中:

    if (!mySafeIpList.Contains(clientIP))
    {
        Response.Clear()
        Response.StatusCode = (int)HttpStatusCode.Unauthorized
        Response.End()
    }
    

    或者,只是简单地重定向到一个有效的页面:

    Response.Redirect("~/Head-Fake.aspx")
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      不幸的是,我很确定您不能通过 IIS 为单个页面执行此操作(如果您想要验证,请访问 Serverfault.com 以获取更多详细信息),但如果您想以编程方式执行此操作,您可以将 Application_BeginRequest 挂接到你的 global.asax 文件。根据您的限制检查请求 URL 和请求 IP 地址,并且只有在它们通过时才允许请求继续。

      【讨论】:

      • +1:建议在Global.asax中实现过滤器。
      【解决方案3】:

      您可以随时根据自己的应用程序中的白名单检查 Request.ServerVariables["REMOTE_HOST"]。

      【讨论】:

        猜你喜欢
        • 2020-04-18
        • 2016-02-21
        • 2021-10-10
        • 2022-08-16
        • 2011-09-19
        • 2012-10-22
        • 2021-05-02
        • 2012-12-04
        • 2021-12-31
        相关资源
        最近更新 更多