C# asp.net服务器变量只返回一些值

C# asp.net服务器变量只返回一些值,c#,asp.net,asp-classic,iis-6,C#,Asp.net,Asp Classic,Iis 6,我正在使用ASP.net,它的部分代码假定返回登录用户: Request.ServerVariables["AUTH_USER"] 但是它什么也不返回。。同时 Request.ServerVariables["HTTP_HOST"] returns proper host name and Request.ServerVariables["AUTH_PASSWORD"] returns proper password etc. 在c#中: 也无法显示用户名 使用经典ASP代码正确返回用户名。

我正在使用ASP.net,它的部分代码假定返回登录用户:

Request.ServerVariables["AUTH_USER"]
但是它什么也不返回。。同时

Request.ServerVariables["HTTP_HOST"] returns proper host name and
Request.ServerVariables["AUTH_PASSWORD"] returns proper password etc.
在c#中:

也无法显示用户名

使用经典ASP代码正确返回用户名。。 我不是ASP.net方面的专家,因此我的问题是:这是与服务器有关还是与代码本身有关


谢谢

这与您在.net中启用的身份验证模型以及本地/服务器IIS中的身份验证选择有关

如果在IIS中启用集成windows身份验证 和system.web。。。。authentication mode=“Forms”在web.config中,您会发现填充了不同的服务器变量

所以要回答你的问题,两者都有一点


-IIS 6.0:

我猜您启用了匿名访问。它在web.config中吗?如果您使用的是IIS 6,则可以通过加载IIS管理器,查看
文档安全性下的网站属性,查看是否启用了匿名访问来找到它。您提到的web.config表明您使用的是IIS 7+而不是IIS 6,在这种情况下,请查找
请求。ServerVariables返回IIS 6。。。不确定这是否是我应该看到的atI已将身份验证模式从窗体更改为窗口,现在AUTH_用户返回服务器/ldap。。。。完全混淆..ldap:轻量级目录访问协议;您刚刚告诉您的应用程序通过默认用户发送身份验证,而不是通过表单向内置IIS用户发送身份验证;这是令人困惑的,我同意,因此我很少使用服务器变量,除非完全必要。(我也来自一个典型的asp背景,服务器变量是标准)最好使用托管的.net对象来查询身份验证,因为这样你就可以在实时中断它并查看值是的,这主要是为了测试。。。使用Windows身份验证不是最好的主意。。。
HttpContext.Current.Request.ServerVariables["AUTH_USER"]