c# – Request.ServerVariables [“LOGON_USER”]与Request.LogonUserIdentity

前端之家收集整理的这篇文章主要介绍了c# – Request.ServerVariables [“LOGON_USER”]与Request.LogonUserIdentity前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图从ASP.Net应用程序的调用者那里获取当前的 WindowsIdentity而不进行模拟.

阅读一些文章后,我的设置是:

>在我的IIS中,我在身份验证设置中启用了Windows身份验证
>在我的web.conf中,我将身份验证模式设置为“Windows”

出于测试目的,我编写了以下日志语句

m_techLogger.Warn(string.Format("Request[logoN_USER] {0}",Request["logoN_USER"]));
m_techLogger.Warn(string.Format("Request.logonUserIdentity {0}",Request.logonUserIdentity.Name));
m_techLogger.Warn(string.Format("HttpContext.Current.User.Identity {0}",HttpContext.Current.User.Identity.Name));
m_techLogger.Warn(string.Format("WindowsIdentity.GetCurrent() {0}",WindowsIdentity.GetCurrent().Name));

这些陈述返回以下内容

2015-04-23 10:47:19,628 [7] WARN  - Request[logoN_USER] DOMAIN\User
2015-04-23 10:47:19,681 [7] WARN  - Request.logonUserIdentity NT AUTHORITY\SYSTEM
2015-04-23 10:47:19,681 [7] WARN  - HttpContext.Current.User.Identity NT AUTHORITY\SYSTEM
2015-04-23 10:47:19,681 [7] WARN  - WindowsIdentity.GetCurrent() NT AUTHORITY\SYSTEM

我知道WindowsIdentity.GetCurrent().Name返回系统用户.我不明白为什么Request.logonUserIdentity和Request [logoN_USER]的输出不同.我需要来自User的WindowsIdentity对象,其名称由Request [logoN_USER]返回.

任何人都能指出我正确的方向吗?

解决方法

当我尝试同样的时候,我得到了
Request.logonUserIdentity.Name  "DOMAIN\\accountname"   (no capital letter)
    Request["logoN_USER"]   "DOMAIN\\Accountname"   (capital letters)

为了在我们的asp.net应用程序中获取当前用户,我使用了这行代码

User.Identity.Name

这有什么用?

猜你在找的C#相关文章