[英]asp.net c# ip address lost after postback?
我在类中的一个函数称为GetIpAddress(),该函数返回以下字符串:System.Web.HttpContext.Current.Request.ServerVariables [“ REMOTE_ADDR”]
这一切在常规页面加载中都能很好地工作并获取我的IP地址,但是例如当我让用户发表评论时,回发后IP地址就会丢失,并且我会返回一个空字符串。
我在这里想念什么吗?
亲切的问候,马克
使用这些:
HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; // a user is going through a proxy server
HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
HttpContext.Current.Request.UserHostAddress;
一些说明:REMOTE_ADDR发出请求的远程主机的IP地址。
REMOTE_HOST发出请求的主机的名称。 如果服务器没有此信息,它将设置REMOTE_ADDR并将其留空。
你有包裹在这样的东西吗?
if (!Page.IsPostBack) {
GetIpAddress()
}
您需要每次调用该函数,或将其存储在Shared变量中。
另一个选择(如@Marc所述)是简单地调用Request.UserHostAddress
而不是GetIpAddress
...它的键入量几乎相同,但是您不必为此提供自定义功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.