Request.ServerVariables 获取方法总结

本文详细介绍了在Web开发中获取服务器与客户端交互时的关键信息,包括服务器地址、路径信息、物理路径、请求方法等,并阐述了如何利用服务器变量与HTTP标头进行Web应用的配置与优化。
Request.ServerVariables["Url"] 
返回服务器地址

Request.ServerVariables["Path_Info"] 
客户端提供的路径信息

Request.ServerVariables["Appl_Physical_Path"] 
与应用程序元数据库路径相应的物理路径

Request.ServerVariables["Path_Translated"] 
通过由虚拟至物理的映射后得到的路径

Request.ServerVariables["Script_Name"] 
执行脚本的名称

Request.ServerVariables["Query_String"] 
查询字符串内容

Request.ServerVariables["Http_Referer"] 
请求的字符串内容

Request.ServerVariables["Server_Port"] 
接受请求的服务器端口号

Request.ServerVariables["Remote_Addr"] 
发出请求的远程主机的IP地址

Request.ServerVariables["Remote_Host"] 
发出请求的远程主机名称

Request.ServerVariables["Local_Addr"] 
返回接受请求的服务器地址

Request.ServerVariables["Http_Host"] 
返回服务器地址

Request.ServerVariables["Server_Name"] 
服务器的主机名、DNS地址或IP地址

Request.ServerVariables["Request_Method"] 
提出请求的方法比如GET、HEAD、POST等等

Request.ServerVariables["Server_Port_Secure"]
如果接受请求的服务器端口为安全端口时,则为1,否则为0

Request.ServerVariables["Server_Protocol"]
服务器使用的协议的名称和版本

Request.ServerVariables["Server_Software"]
应答请求并运行网关的服务器软件的名称和版本

Request.ServerVariables["All_Http"]
客户端发送的所有HTTP标头,前缀HTTP_

Request.ServerVariables["All_Raw"]
客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_

Request.ServerVariables["Appl_MD_Path"]
应用程序的元数据库路径

Request.ServerVariables["Content_Length"]
客户端发出内容的长度

Request.ServerVariables["Https"]
如果请求穿过安全通道(SSL),则返回ON如果请求来自非安全通道,则返回OFF

Request.ServerVariables["Instance_ID"]
IIS实例的ID号

Request.ServerVariables["Instance_Meta_Path"]
响应请求的IIS实例的元数据库路径

Request.ServerVariables["Http_Accept_Encoding"]
返回内容如:gzip,deflate

Request.ServerVariables["Http_Accept_Language"]
返回内容如:en-us

Request.ServerVariables["Http_Connection"]
返回内容:Keep-Alive

Request.ServerVariables["Http_Cookie"]
返回内容:Cookie的值


Request.ServerVariables["Http_User_Agent"]
返回内容:Mozilla/4.0[compatible;MSIE6.0;WindowsNT5.1;SV1]

Request.ServerVariables["Https_Keysize"]
安全套接字层连接关键字的位数,如128

Request.ServerVariables["Https_Secretkeysize"]
服务器验证私人关键字的位数如1024

Request.ServerVariables["Https_Server_Issuer"]
服务器证书的发行者字段

Request.ServerVariables["Https_Server_Subject"]
服务器证书的主题字段

Request.ServerVariables["Auth_Password"]
当使用基本验证模式时,客户在密码对话框中输入的密码

Request.ServerVariables["Auth_Type"]
是用户访问受保护的脚本时,服务器用於检验用户的验证方法

Request.ServerVariables["Auth_User"]
代证的用户名

Request.ServerVariables["Cert_Cookie"]
唯一的客户证书ID号

Request.ServerVariables["Cert_Flag"]
客户证书标志,如有客户端证书,则bit0为0如果客户端证书验证无效,bit1被设置为1

Request.ServerVariables["Cert_Issuer"]
用户证书中的发行者字段

Request.ServerVariables["Cert_Keysize"]
安全套接字层连接关键字的位数,如128

Request.ServerVariables["Cert_Secretkeysize"]
服务器验证私人关键字的位数如1024

Request.ServerVariables["Cert_Serialnumber"]
客户证书的序列号字段

Request.ServerVariables["Cert_Server_Issuer"]
服务器证书的发行者字段

Request.ServerVariables["Cert_Server_Subject"]
服务器证书的主题字段

Request.ServerVariables["Cert_Subject"]
客户端证书的主题字段

Request.ServerVariables["Content_Type"]
客户发送的form内容或HTTPPUT的数据类型
现在程序的日志记录的是程序配置的服务器的MAC 一直不变, 要改为和IP一样根据登录人 获取登录人的IP 和MAC 记录到日志 namespace SummerFresh.AirProduct { public class LoginLogHelp { private static Dao dao { get { return Dao.Get(); } } public int Insert(LoginLogInfo info) { //INSERT INTO LoginLogInfo VALUES('LoginAccount','LoginTime','IP', 'MAC') string sql = "INSERT INTO LoginLogInfo VALUES (#LoginAccount#,#LoginTime#,#IP#,#MAC#)"; return dao.ExecuteNonQuery(sql, new { LoginAccount = info.LoginAccount, LoginTime = info.LoginTime, IP = info.IP, MAC = info.MAC }); } public List<LoginLogInfo> GetLoginLogInfoList() { var res = dao.QueryEntities<LoginLogInfo>("select * from LoginLogInfo "); return res.ToList(); } public int GetUserLogInfoAndInsert(string uNames, HttpRequestBase Request) { LoginLogInfo info = new LoginLogInfo(); info.LoginAccount = uNames; info.LoginTime = DateTime.Now; info.IP = GetClientIPAddr(); info.MAC = GetMac().FirstOrDefault(); return Insert(info); } public List<string> GetMac() { List<string> lst = new List<string>(); ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc) if (mo["IPEnabled"].ToString() == "True" || mo["MacAddress"] != null) { lst.Add(mo["MacAddress"].ToString()); } return lst; } ///<summary> ///获取客户端IP地址 ///</summary> ///<returns>IP地址</returns> public string GetClientIPAddr() { string ipAddr = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (string.IsNullOrEmpty(ipAddr)) ipAddr = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; if (string.IsNullOrEmpty(ipAddr)) ipAddr = HttpContext.Current.Request.UserHostAddress; return ipAddr; } } }
最新发布
07-24
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值