如何在没有IIS的情况下在ASP.NET CORE 3.1中获取当前windows用户名

如何在没有IIS的情况下在ASP.NET CORE 3.1中获取当前windows用户名,windows,asp.net-core,.net-core,Windows,Asp.net Core,.net Core,我正在研究我的ASP.NET Core 3.1 web应用程序托管在Windows服务中的问题。我正在使用没有IIS的Kestrel。我的要求是,在Citrix或Windows Server 2016等多用户会话环境中,多个用户可以登录到机器,我需要获取访问web应用程序的每个登录用户的用户名。该web应用程序是Outlook 365 web加载项,仅在本地主机上运行,远程用户无法访问 你能提供一些关于如何实现这一点的帮助吗?我应该能够在ASP.NET Core 3.1中登录到IIS中未提升的用

我正在研究我的ASP.NET Core 3.1 web应用程序托管在Windows服务中的问题。我正在使用没有IIS的Kestrel。我的要求是,在Citrix或Windows Server 2016等多用户会话环境中,多个用户可以登录到机器,我需要获取访问web应用程序的每个登录用户的用户名。该web应用程序是Outlook 365 web加载项,仅在本地主机上运行,远程用户无法访问

你能提供一些关于如何实现这一点的帮助吗?我应该能够在ASP.NET Core 3.1中登录到IIS中未提升的用户名/ID


谢谢。

您的意思是要在asp.net core中获取当前的windows登录用户吗?不是windows身份验证登录用户

如果这是您的要求,我建议您可以为asp.net core windows服务设置足够的权限,并让asp.net core应用程序运行CMD命令
whoami
,以获取用户名

更多详细信息,请参考以下代码:

        using (var ps = PowerShell.Create())
        {
            var results = ps.AddScript("whoami").Invoke();
            foreach (var result in results)
            {
                string re = result.ToString();                
            }
        }
结果:


谢谢您的回复,白兰度。我的应用程序托管在Windows服务中,此代码在那里不起作用。您的意思是您无法为应用程序设置足够的权限来运行该命令吗?是的,我无法在Windows服务范围(系统帐户)中运行的代码中运行该命令