【问题标题】:ASP.NET Core Windows Authentication - Only Accepting Local Administrator CredentialsASP.NET Core Windows 身份验证 - 仅接受本地管理员凭据
【发布时间】:2020-09-29 16:21:56
【问题描述】:

所以我正在尝试获取登录用户的 User.Identity.Name。我的计算机在域中,并且我正在使用域凭据登录。

我在 Startup.cs 中实现了以下服务:

services
   .AddAuthentication(NegotiateDefaults.AuthenticationScheme)
   .AddNegotiate();

我还添加了以下几行:

app.UseAuthentication(); 
app.UseAuthorization();

然后我在 API 控制器中使用以下内容:

[HttpGet]
        public String Get()
        {
            return User.Identity.Name;
        }

当我启动应用程序时,它不会接受我登录的用户凭据。它只会接受我的其他具有本地管理员访问权限的域帐户。这是预期的行为吗?我该如何解决这个问题?

我记得这在 VS2017 和 Asp.Net 中运行良好。我目前正在使用带有 Core 3.1 的 VS2019

谢谢

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

    您可以像使用 Kestrel 作为主机时应该做的那样配置您的应用程序。但是,也许您正在使用 IIS 启动您的应用程序?要在 IIS 中正确配置 Windows 身份验证,您需要执行一些额外的步骤,这些步骤在 Configure Windows Authentication in ASP.NET Core 中有详细说明。我建议您仔细检查是否已执行本指南中详述的在 IIS、Kestrel 或 HTTP.sys 中托管所需的所有步骤。

    【讨论】:

    • 嗨,马丁,感谢您的回复。我正在使用 IIS Express 进行调试。我实际上尝试打开我以前在 VS2019 中工作过的旧 ASP.NET 应用程序(内置于 VS2017),并且在调试时,它有完全相同的问题。也许我面临的这个问题与 VS2019 甚至我的本地用户配置文件有关。有什么想法吗?
    • 要在 IIS 中使用 Windows 身份验证,您需要在 web.config 文件中添加特定条目,如 docs.microsoft.com/en-us/aspnet/core/security/authentication/… 中所述。在 Visual Studio 中使用 IIS Express 时,您可以在项目属性中设置它们(选择 Web 项目,按 F4)。另见stackoverflow.com/questions/24194941/…
    猜你喜欢
    • 2018-12-05
    • 2018-03-25
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2014-12-15
    • 2020-12-03
    • 2023-02-03
    相关资源
    最近更新 更多