我在Kestrel中有一个asp.net核心自托管应用程序。 Program.cs Main()函数中的部分.UseKestrel选项是使用ClientCertificateValidation()功能让我自己的函数验证客户端证书。
此验证功能正常,但我的自定义验证功能需要能够为已验证的连接添加标识角色。我知道通常你可以使用依赖注入来获取HttpContext但是因为这是我在Program.cs Main()函数中的UseKestrel.ClientCertificateValidation中指向的函数,所以没有办法注入我所知道的HttpContext依赖项。
有没有人知道在这个场景中使用依赖注入工作的其他方法或从我的自定义证书验证功能中访问HttpContext的其他方式?谢谢
高级代码段,以便您可以了解嵌套在哪里:
public static void Main(string[] args)
{
.UseKestrel(options =>
{
httpsoptions.ClientCertificateValidation = (cert,chain,errors) => certHelper.ValidateClientCert(cert,chain,errors, null);
}}
public bool ValidateClientCert(X509Certificate2 cert, X509Chain chain, SslPolicyErrors sslerrors, CertificateValidationConfig certvalidationconfig)
{
//How to get HttpContext in this function?
}