【问题标题】:How to get Client Certificate in Middleware ASP.Net Core 5?如何在中间件 ASP.Net Core 5 中获取客户端证书?
【发布时间】:2022-07-11 21:24:09
【问题描述】:

我有一个中间件试图从 Postman 证书接收客户端证书,它读取为 Null 在 Program.cs 中,我也允许使用证书

 webBuilder.ConfigureKestrel(o =>
 {
    o.ConfigureHttpsDefaults(o =>
    o.ClientCertificateMode = 
      ClientCertificateMode.AllowCertificate);
  });

下面是我的代码片段

 public class ApiKeyMiddleware
 {
  public ApiKeyMiddleware(RequestDelegate next)
  {
    _next = next;
  }
  public async Task InvokeAsync(HttpContext context)
  {
     var cert = context.Request.Connection; // Is NULL in headers as well
     await _next(context);
  } 
}

【问题讨论】:

  • 您使用的是哪种证书。如果您有适当的证书,它就可以工作
  • @CodingMytra 我正在使用的自签名证书。
  • 你是如何生成这个自签名证书的?对我来说,它适用于由适当 CA 签名的证书,但不适用于自签名证书。所以你的代码绝对没有问题。

标签: asp.net asp.net-core .net-5 webapi


【解决方案1】:

在 IIS Express 证书中不起作用,更改为在端口 5001 中运行的项目,工作正常,因此关闭谢谢。

【讨论】:

    猜你喜欢
    • 2014-11-01
    • 1970-01-01
    • 2023-02-17
    • 2012-04-10
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多