Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何在IIS中为单个URL创建IP白名单_Asp.net_Whitelist - Fatal编程技术网

Asp.net 如何在IIS中为单个URL创建IP白名单

Asp.net 如何在IIS中为单个URL创建IP白名单,asp.net,whitelist,Asp.net,Whitelist,我有一个ASP.NET应用程序,它由几个.aspx页面组成。我希望其中的一个.aspx页面只能由一组特定的IP访问。这可能吗 我知道你可以在网站级别使用IP白名单,但你可以在应用程序中为单个URL使用IP白名单吗?你可以在应用程序中对照你自己的白名单检查Request.ServerVariables[“REMOTE\u HOST”]。不幸的是,我很确定你不能通过IIS为单个页面使用IP白名单(如果需要验证,请访问Serverfault.com了解更多详细信息),但如果希望以编程方式执行此操作,则

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


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

你可以在应用程序中对照你自己的白名单检查Request.ServerVariables[“REMOTE\u HOST”]。

不幸的是,我很确定你不能通过IIS为单个页面使用IP白名单(如果需要验证,请访问Serverfault.com了解更多详细信息),但如果希望以编程方式执行此操作,则可以在global.asax文件中挂接应用程序\u BeginRequest。根据您的限制检查请求URL和请求IP地址,并且仅允许请求在通过时继续。

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

拥有IP后,从您选择的存储机制加载白名单,可能是在初始化事件期间(如果在页面中),如果IP不匹配,则按此方式响应(使用
HttpContext.Current.Response
如果不在页面中:

if (!mySafeIpList.Contains(clientIP))
{
    Response.Clear()
    Response.StatusCode = (int)HttpStatusCode.Unauthorized
    Response.End()
}
或者,只需重定向到有效页面:

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

我希望这能有所帮助。

+1:关于在
Global.asax
中实现过滤器的建议。