c# - 如何在 ASP.NET Core (.NET 5) 中获取 (IIS) 证书映射用户
问题描述
问题当通过客户端证书完成身份验证时,
如何访问与请求绑定的 IIS映射用户名。
设置
项目类型:ASP.NET Core Web API (.NET 5) 项目
主机:IIS
身份验证类型(在 IIS 中):客户端证书
配置
“证书 A”到“用户 A”的一对一映射(在站点级别)。这可行,并且用户 A 允许该请求。
并在 ASP.NET Web API 项目中使用以下身份验证配置
public void ConfigureServices(IServiceCollection services)
{
//...
services.AddAuthentication(CertificateAuthenticationDefaults.AuthenticationScheme)
.AddCertificate(options =>
{
options.AllowedCertificateTypes = CertificateTypes.All;
options.Events = new CertificateAuthenticationEvents
{
OnCertificateValidated = ValidCertificateHandler,
OnAuthenticationFailed = InvalidCertificateHandler
};
});
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
//...
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
我可以访问相关用户对象中的一些用户信息。
但此信息来自证书本身(“证书 A”的主题)。
如果可能的话,我想得到的是来自映射用户“用户 A”的用户信息。
这完全可能吗?如果可以,我需要进行哪些更改才能访问 IIS 映射用户?
解决方案
推荐阅读
- javascript - How can i store an element value using a class in jquery
- python - How do you send an API key to Datadog using urllib?
- r - Read only a crop or extent of a raster in R
- javascript - 如何获得用户喜欢?
- mustache.php - Mustache Php:部分构造函数不起作用
- github - github分配是什么意思
- html - 如果输入值为空,则添加 2 个不带 NaN 的输入值。AngularJS
- powershell - PowerShell 中的 CMD 命令。引号?
- ethereum - 以太坊 - 高gas成本
- ruby-on-rails - Changing Value Formatting in Rails Admin's Fields