为什么IIS7缺少HTTP_REFERER服务器变量?
问题描述:
我使用Windows 2008 x64 R2与IIS 7.5和ASP.NET 2.0。为什么IIS7缺少HTTP_REFERER服务器变量?
我想用HTTP_REFERER
但由于某种原因,但它不适用,因此我决定重复使用此代码的所有服务器瓦尔:
foreach (string vars in Request.ServerVariables)
{
Response.Write (vars.ToString() + "\r\n <br/>");
}
下面是结果:
ALL_HTTP ALL_RAW APPL_MD_PATH APPL_PHYSICAL_PATH AUTH_TYPE AUTH_USER AUTH_PASSWORD LOGON_USER REMOTE_USER CERT_COOKIE CERT_FLAGS CERT_ISSUER CERT_KEYSIZE CERT_SECRETKEYSIZE CERT_SERIALNUMBER CERT_SERVER_ISSUER CERT_SERVER_SUBJECT CERT_SUBJECT CONTENT_LENGTH CONTENT_TYPE GATEWAY_INTERFACE HTTPS HTTPS_KEYSIZE HTTPS_SECRETKEYSIZE HTTPS_SERVER_ISSUER HTTPS_SERVER_SUBJECT INSTANCE_ID INSTANCE_META_PATH LOCAL_ADDR PATH_INFO PATH_TRANSLATED QUERY_STRING REMOTE_ADDR REMOTE_HOST REMOTE_PORT REQUEST_METHOD SCRIPT_NAME SERVER_NAME SERVER_PORT SERVER_PORT_SECURE SERVER_PROTOCOL SERVER_SOFTWARE URL HTTP_CONNECTION HTTP_KEEP_ALIVE HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_LANGUAGE HTTP_HOST HTTP_USER_AGENT HTTP________________
灿任何人都可以解释为什么HTTP_REFERER
缺失?
答
当您测试此项时,请确保您实际浏览到从其他网页打印服务器变量的页面。例如,创建一个具有链接的新页面,例如:
<a href="printservervars.aspx">Click</a>
它将您带到具有您发布的示例代码的页面。
除非浏览器发送它,否则IIS不会创建HTTP_REFERER
。如果您打开的第一页是使用该脚本的浏览器,则浏览器不会发送它,因为浏览器不会从任何地方“转介”到该页面。
您确认浏览器正在发送引用程序吗?您可以使用萤火虫或镀铬检查器检查请求标题。 – mikerobi 2010-10-03 23:35:47