iis - 为什么 IIS7 缺少 HTTP_REFERER 服务器变量?

标签 iis iis-7.5

我正在使用带有 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/

相关文章:

node.js - Node 在IIS中找不到模块,可以从提示符中找到

PHP |允许用户上传的安全性

iis - HTTP 错误 500.23 - 内部服务器错误本地 IIS Web 服务器

asp.net - 最小化 304 请求的问题

asp.net-mvc - IIS7 cacheControlMaxAge 属性不起作用

javascript - 防止 MVC 提供 .js、.css 等静态文件

asp.net - 我的 SSL 证书是否适用于 IIS 上的新 Wordpress 网站?

iis - 有没有办法将 IIS 7.5 重置为出厂设置?

asp.net - 强制单个背景图像*不*缓存

IIS 7.5 从响应中删除 etag header