-1
我有asp.net的web應用程序,我希望人們只能從我的公司網絡(LAN)使用它,我該如何做到這一點?ASP.Net僅在局域網上可用的網頁
我有asp.net的web應用程序,我希望人們只能從我的公司網絡(LAN)使用它,我該如何做到這一點?ASP.Net僅在局域網上可用的網頁
可以
要檢查IPS上的BeginRequest,你讀的客戶端IP,則檢查其in a range of the private networs或者你把你喜歡的其他IP,如果它不是你只是關閉連接:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if(!IsPrivateNetwork(MyCurrentContent.Request.ServerVariables["REMOTE_ADDR"])
{
HttpContext.Current.Response.TrySkipIisCustomErrors = true;
HttpContext.Current.Response.StatusCode = 403;
HttpContext.Current.Response.End();
return ;
}
}
public bool IsPrivateNetwork(string sMyIpString)
{
long TheIpTranslate = AddressToNum(sMyIpString);
if (TheIpTranslate >= 0)
{
// 192.168.0.0 192.168.255.255
if (TheIpTranslate >= 3232235520 && TheIpTranslate <= 3232301055)
return true;
// 10.0.0.0 10.255.255.255
if (TheIpTranslate >= 167772160 && TheIpTranslate <= 184549375)
return true;
// 172.16.0.0 172.31.255.255
if (TheIpTranslate >= 2886729728 && TheIpTranslate <= 2887778303)
return true;
}
return false;
}
public long AddressToNum(string cAddress)
{
IPAddress MyIpToCheck = null;
if (IPAddress.TryParse(cAddress, out MyIpToCheck))
{
return AddressToNum(MyIpToCheck);
}
else
{
return -1;
}
}
public long AddressToNum(IPAddress Address)
{
byte[] b = BitConverter.GetBytes(Address.Address);
if (b.Length == 8)
return (long)(((long)16777216 * b[0]) + ((long)(65536 * b[1])) + ((long)(256 * b[2])) + b[3]);
else
return 0;
}
大多數公司使用NAT盒子,外部用戶無法訪問其Intranet上的機器。如果你在NAT後面,詢問網絡管理員 – nunespascal