我正在研究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
感谢任何人都能给我正确的解决方案。
答案 0 :(得分:0)
“带有敏感信息的环境变量错误随着传递用户名而传递。”这是常见错误,因为它在生产环境中无法显示确切的错误。 禁用匿名身份验证。