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

aiqt4smr  于 2023-11-20  发布在  .NET
关注(0)|答案(3)|浏览(263)

我有一个由几个.aspx页面组成的ASP.NET应用程序。我希望其中一个.aspx页面只能由特定的IP访问。这可能吗?
我知道你可以在网站级别的IP白名单,但你可以在一个应用程序中的单个URL的IP白名单?

jmp7cifd

jmp7cifd1#

下面的资源演示了如何在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")


我希望这能帮上忙。

ncecgwcz

ncecgwcz2#

不幸的是,我很确定你不能通过IIS对一个页面做这件事(如果你想验证的话,请访问Serverfault.com了解更多细节),但是如果你想以编程的方式做这件事,你可以在你的global.asax文件中挂钩Application_BeginRequest。根据你的限制检查请求的URL和请求的IP地址,只有当它们通过时才允许请求继续。

ve7v8dk2

ve7v8dk23#

您可以随时根据应用中自己的白色列表检查Request.ServerVariables[“REMOTE_HOST”]。

相关问题