如果通过本地网络请求页面,是否有办法在页面上显示控件?
答案 0 :(得分:6)
是,使用Request.IsLocal
属性,它会获取一个值,指示请求是否来自本地计算机。 E.g。
theControl.Visible = Request.IsLocal;
编辑:我上面提供的答案仅适用于本地主机:
要完全回答您的问题,应该知道网络的子网掩码。 您也可以使用此处的IP地址扩展方法:IP Address Calculations with C# (Subnetmasks, Networks, …)并使用它:
var ip1 = IPAddress.Parse("192.168.0.1");
var ip2 = IPAddress.Parse(Request.UserHostAddress);
var mask = IPAddress.Parse("255.255.255.0");
bool inSameNet = ip1.IsInSameSubnet(ip2, mask);
要获取用户主机地址,您可以使用HttpRequest.UserHostAddress
方法;但请记住主机地址可以欺骗。
答案 1 :(得分:0)
杰里米。
您可以使用HttpContext.Current.UserHostAddress
获取当前请求的IP,请参阅this msdn page。如何将其与本地子网进行比较由您决定。然后,您可以相应地在控件上设置visibility属性。