使用表单身份验证时获取Windows用户ID

时间:2013-04-26 15:07:40

标签: asp.net .net asp.net-mvc iis-7 forms-authentication

我正在研究在我们的Intranet上运行的ASP.NET MVC应用程序。我们正在使用表单身份验证,但设置的用户名将与Active Directory用户名相同。我正在尝试使用Windows用户名找到预填充登录用户名字段的方法,但无法找到访问当前Windows用户身份的方法。

System.Environment.UserDomainName返回“IIS APPPOOL”

System.Security.Principal.WindowsPrincipal.Current.Identity返回GenericIdentity

HttpContext.Request.LogonUserIdentity.Name返回“NT AUTHORITY \ IUSR”

我不想以Windows用户身份验证Windows用户或登录网站,我只想阅读用户名。有没有办法在使用表单身份验证而不是Windows身份验证时执行此操作?

2 个答案:

答案 0 :(得分:0)

请试试这个:

在web.config

<identity impersonate="true" />
<authentication mode="Forms">
     <forms loginUrl="./WebLogin.aspx" defaultUrl="./default.aspx" timeout="12" path="/" name=".ASPXFORMSAUTH" />
</authentication>

在代码c#

string windowsName = WindowsPrincipal.Current.Identity.Name;
//OR
string windowsName = Thread.CurrentPrincipal.Identity.Name;

这对我来说很好。

答案 1 :(得分:0)

关闭IIS中的Windows身份验证,然后一切正常