仅在未远程查看时才显示控件

时间:2011-03-30 19:48:33

标签: asp.net

如果通过本地网络请求页面,是否有办法在页面上显示控件?

2 个答案:

答案 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属性。