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

Jer*_*ell 2 asp.net

有没有办法只在页面是通过本地网络请求页面上显示控件?

Ale*_*lex 6

是的,使用Request.IsLocal属性,它获取一个值,指示请求是否来自本地计算机.例如

theControl.Visible = Request.IsLocal;
Run Code Online (Sandbox Code Playgroud)

编辑:我上面提供的答案仅适用于本地主机:

要完全回答您的问题,应该知道网络的子网掩码.您也可以使用以下IP地址扩展方法:使用C#(子网,网络,...)进行IP地址计算,并使用它:

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);
Run Code Online (Sandbox Code Playgroud)

要获取用户主机地址,您可以使用HttpRequest.UserHostAddress方法; 但请记住主机地址可能是欺骗性的.