Tan*_*any 6 c# authentication azure asp.net-core
我在适用于 Linux 的 Azure 应用服务上部署了一个 ASP.Net 核心网站。
在控制器中,我正在尝试获取客户端证书,如下所示:
var callerCertificate = Request.HttpContext.Connection.ClientCertificate;
Run Code Online (Sandbox Code Playgroud)
我总是callerCertificate为空。我试过await Request.HttpContext.Connection.GetClientCertificateAsync()同样的结果null。
我的网站虚拟主机创建如下所示:
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseStartup<Startup>()
.UseSerilog();
Run Code Online (Sandbox Code Playgroud)
我还为网站(在 Azure 中)设置了 SSL 设置,如下所示:
客户端调用方是一个 net462 项目,用于Microsoft.Rest.CertificateCredentials将证书设置为 HTTP 请求。
var cred = new CertificateCredentials(_deviceCertificate)
...
await this.cred.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)
回答我自己的问题:我能够从标头获取客户端证书
字符串 clientCertFromHeader = Request.Headers["X-ARR-ClientCert"];
尽管如此,为什么 Request.HttpContext.Connection.ClientCertificate 不提供证书仍然是个谜。
| 归档时间: |
|
| 查看次数: |
4724 次 |
| 最近记录: |