我正在研究在我们的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身份验证时执行此操作?
答案 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身份验证,然后一切正常