我正在使用带有 IIS 7.5 和 ASP.NET 2.0 的 Windows 2008 x64 R2。
我想使用 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
除非浏览器发送它。如果您打开的第一个页面是带有该脚本的页面,浏览器将不会发送它,因为浏览器没有从任何地方“引用”到该页面。
关于iis - 为什么 IIS7 缺少 HTTP_REFERER 服务器变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3849130/