我有一个使用基本身份验证的 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身份验证整体?
我稍后也需要在应用程序中使用这个“映射”用户名。
请指教。感谢和问候
没有办法两者兼得 最后我在 appsettings.json 中添加了一些标志
HttpContextAccessor
我在 2 个站点托管 2 个项目,其中一个具有基本 + 证书,第二个仅具有证书