为什么IIS7缺少HTTP_REFERER服务器变量?
我正在将Windows 2008 x64 R2与IIS 7.5和ASP.NET 2.0一起使用 我想使用为什么IIS7缺少HTTP_REFERER服务器变量?,iis,iis-7.5,Iis,Iis 7.5,我正在将Windows 2008 x64 R2与IIS 7.5和ASP.NET 2.0一起使用 我想使用HTTP\u REFERER,但由于某些原因它不可用,因此我决定使用以下代码迭代所有服务器变量: foreach (string vars in Request.ServerVariables) { Response.Write (vars.ToString() + "\r\n <br/>"); } foreach(Request.ServerVariables中的字
HTTP\u REFERER
,但由于某些原因它不可用,因此我决定使用以下代码迭代所有服务器变量:
foreach (string vars in Request.ServerVariables)
{
Response.Write (vars.ToString() + "\r\n <br/>");
}
foreach(Request.ServerVariables中的字符串变量)
{
Write(vars.ToString()+“\r\n
”);
}
结果如下:
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
全生的
应用程序路径
应用物理路径
认证类型
授权用户
验证密码
登录用户
远程用户
证书饼干
证书标志
证书颁发者
证书密钥大小
证书加密密钥大小
证书序列号
证书服务器颁发者
证书服务器主题
证书科目
内容长度
内容类型
网关接口
HTTPS
HTTPS\u密钥大小
HTTPS\u SECRETKEYSIZE
HTTPS\u服务器\u颁发者
HTTPS\u服务器\u主题
实例ID
实例\元\路径
本地地址
路径信息
路径被翻译
查询字符串
远程地址
远程主机
远程端口
请求法
脚本名称
服务器名称
服务器端口
服务器\端口\安全
服务器协议
服务器软件
统一资源定位地址
HTTP\U连接
HTTP\u保持活力
HTTP_接受
HTTP_接受_字符集
HTTP_接受_语言
HTTP_主机
HTTP\u用户\u代理
HTTP________________
有人能解释为什么HTTP\u REFERER丢失吗?当您进行测试时,请确保实际浏览到从另一个网页打印服务器变量的页面。例如,创建具有以下链接的新页面:
<a href="printservervars.aspx">Click</a>
这会将您带到包含您发布的示例代码的页面
除非浏览器发送,否则IIS不会创建HTTP\u REFERER。如果您打开的第一个页面是包含该脚本的页面,则浏览器不会发送该脚本,因为浏览器没有从任何位置“引用”到该页面。是否验证浏览器是否正在发送引用?您可以使用firebug或chrome inspector检查请求头。