[英]Razor Page C# ASP.NET Core get Windows Username (Windows Auth)
我有 Windows 身份验证问题。 我使用命令“dotnet new webapp --auth Windows”创建了一个新的 Web 应用程序。 这应该有一个 Windows 身份验证,到目前为止可以与模板一起使用。 现在我想使用 Windows 用户名。 在 Razor 页面 (.cshtml) 上,我可以使用 @User.Identity.Name 访问用户名,没有任何问题。 如何访问 (.cshtml.cs) 文件中的用户名。
进行了以下尝试:
Enviroment.UserName
--> 在本地机器上工作正常,但在 IIS 上不工作。
User.Identity.Name
- 当前上下文中不存在名称“用户”
HttpContext.Current.User.Identity.Name
HttpContext.Current.User
- 当前上下文中不存在名称“HttpContext”
System.Security.Principal.WindowsIdentity.GetCurrent().Name
我的应用程序将在 Windows Server 上的 IIS 上运行,并启用 Windows 身份验证。
我希望有一个人可以帮助我。 提前谢谢你,祝你有美好的一天
您需要将IHttpContextAccessor
注入您的控制器/服务,如下所示:
Startup.cs, ConfigureServices
函数:
services.AddHttpContextAccessor();
在您的控制器/服务中:
private readonly IHttpContextAccessor _httpContextAccessor;
public ProjectionSqlService(IHttpContextAccessor httpContextAccessor)
{
_configuration = configuration;
_httpContextAccessor = httpContextAccessor;
var username = _httpContextAccessor.HttpContext.User.Identity.Name;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.