获取Windows登录用户名ASP .net

时间:2014-12-19 10:08:55

标签: c# asp.net iis-8

我在IIS 8上部署了一个具有表单身份验证模式的应用程序。 现在有一个要求,即如果Windows用户和应用程序用户不同,企业希望显示弹出消息并创建审核日志。

为此,我想在应用程序的logincontrol上获取Windows登录用户。我尝试了很多方法但没有任何帮助。

如果可能,请指导我。

任何人......请帮助我......

1 个答案:

答案 0 :(得分:15)

我使用此网站作为参考:

http://richhewlett.com/2011/02/15/getting-a-users-username-in-asp-net/

(如果网站出现故障,则重新发布摘要)

方案1:IIS中的匿名身份验证,模拟已关闭。

HttpContext.Current.Request.LogonUserIdentity.Name  COMPUTER1\IUSR_COMPUTER1
HttpContext.Current.Request.IsAuthenticated False
HttpContext.Current.User.Identity.Name  -
System.Environment.UserName ASPNET
Security.Principal.WindowsIdentity.GetCurrent().Name    COMPUTER1\ASPNET

方案2:IIS中的Windows身份验证,模拟关闭。

HttpContext.Current.Request.LogonUserIdentity.Name  MYDOMAIN\USER1
HttpContext.Current.Request.IsAuthenticated True
HttpContext.Current.User.Identity.Name  MYDOMAIN\USER1
System.Environment.UserName ASPNET
Security.Principal.WindowsIdentity.GetCurrent().Name    COMPUTER1\ASPNET

场景3:IIS中的匿名身份验证,

上的模拟
HttpContext.Current.Request.LogonUserIdentity.Name  COMPUTER1\IUSR_COMPUTER1
HttpContext.Current.Request.IsAuthenticated False
HttpContext.Current.User.Identity.Name  -
System.Environment.UserName IUSR_COMPUTER1
Security.Principal.WindowsIdentity.GetCurrent().Name    COMPUTER1\IUSR_COMPUTER1

方案4:IIS中的Windows身份验证,

上的模拟
HttpContext.Current.Request.LogonUserIdentity.Name  MYDOMAIN\USER1
HttpContext.Current.Request.IsAuthenticated True
HttpContext.Current.User.Identity.Name  MYDOMAIN\USER1
System.Environment.UserName USER1
Security.Principal.WindowsIdentity.GetCurrent().Name    MYDOMAIN\USER1