IIS上的ASP.Net Core 2.2 MVC Windows身份验证和Windows用户名问题

时间:2019-02-18 17:55:38

标签: .net-core windows-authentication username

我正在研究ASP.Net核心2.2 MVC应用程序。使用Windows身份验证对用户进行身份验证,成功登录后,我想在我的主页中显示登录的用户。

如何使用以下功能/方法获取用户名,该用户名在调试模式下按预期工作正常。

但是当我托管在IIS中时,我没有得到用户名,而是得到

ApplicationPoolname,机器名

       ViewBag.username = Environment.UserName;
        ViewBag.username = Environment.GetEnvironmentVariable("USERNAME");
        ViewBag.username = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        ViewBag.username = User.FindFirst(ClaimTypes.NameIdentifier).ToString();

以下代码请求错误500 IHttpContextAccessor

当我使用

ViewBag.username = this.User.Identity.Name;

我在通过用户名时收到环境信息错误,其中包含敏感信息。

所以到目前为止,什么都没有用,为此的任何解决方案都可以从MS和论坛的所有文档中找到更多信息。

已经检查了以下线程

Asp.Net Core 2.1 Windows Auth. HttpContext.User.Identity.Name not working in IIS

感谢任何人都能给我正确的解决方案。

1 个答案:

答案 0 :(得分:0)

“带有敏感信息的环境变量错误随着传递用户名而传递。”这是常见错误,因为它在生产环境中无法显示确切的错误。 禁用匿名身份验证。