.net-core - IIS 上的 ASP.Net Core 2.2 MVC Windows 身份验证和 Windows 用户名问题
问题描述
我正在开发 ASP.Net 核心 2.2 MVC 应用程序。使用 Windows 身份验证对用户进行身份验证,我想在成功登录后在我的主页中显示已登录的用户。
如何使用以下函数/方法来获取在调试模式下正常工作的用户名。
但是当我在 IIS 中托管时,我没有得到用户名,而是得到
应用程序池名称、机器名称
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 身份验证。HttpContext.User.Identity.Name 在 IIS 中不起作用
感谢有人能给我正确的解决方案。
解决方案
“带有敏感信息的环境变量错误正在传递,因为它传递了用户名。” 是常见错误,因为它不会在生产环境中显示确切的错误。禁用匿名身份验证。
推荐阅读
- reactjs - 我应该使用什么类型来匹配返回 div 的 FunctionComponent?
- c - 正确使用“volatile”是否仍然(总是)导致程序与该数据具有未定义的交互?
- java - 将 MongoDB Java 驱动程序添加为 Maven 依赖项的问题
- javascript - 在javascript中从多个文件中读取数据
- php - 如何使用 REST 接口退出 WordPress?
- c++ - 在客户端上使用 gRPC C++,如何保持库单线程?
- kotlin - Kotlin 中是否有任何方法可以将自定义函数添加到接口内的属性中?
- python - 查找两个列表之间的差异并在列表中打印它们的位置和值
- javascript - 用两个例子测试我对表达式和语句的理解
- python - 在多列上应用`pd.qcut`