ASP.NET Core Web API:基本身份验证+证书映射

问题描述 投票:0回答:1

我有一个使用基本身份验证的 ASP.NET Core Web API,并且需要 SSL。

我有

services.AddAuthentication(o => {
                                    o.DefaultScheme = IISDefaults.AuthenticationScheme;
                                });

以及每个控制器

[Authorize]

我需要添加一个选项,以便客户端只需发送证书并将其映射到用户。所以我添加了

services.AddAuthentication(
             o => {
                      o.DefaultScheme = IISDefaults.AuthenticationScheme;
                  })
        .AddCertificate().

在 IIS 中,我添加了客户端证书映射身份验证,以便它将客户端证书映射到 Windows 用户

testuser
,并且它确实可以正常工作。

因为在

inetpub/logs/
,我明白了

2024-04-10 12:25:38 ::1 POST /sp/TestParams - 5264 testuser ::1 PostmanRuntime/7.29.2 - 401 0 0 383

因此它被映射到“testuser”。

但是为什么我会收到错误:

HTTP 401 - 未经授权

我需要添加什么才能使其按我想要的方式工作。这个证书映射是否像我想象的那样工作 - 对于应用程序来说它是=基本/Windows身份验证整体?

我稍后也需要在应用程序中使用这个“映射”用户名。

请指教。

感谢和问候

c# authentication asp.net-core-webapi client-certificates
1个回答
0
投票

没有办法两者兼得 最后我在 appsettings.json 中添加了一些标志

HttpContextAccessor

我在 2 个站点托管 2 个项目,其中一个具有基本 + 证书,第二个仅具有证书

© www.soinside.com 2019 - 2024. All rights reserved.