Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何在Kestrel asp.net core上执行ClientCertificateValidation的函数中获取HttpContext?_Asp.net Core_Kestrel Http Server - Fatal编程技术网

Asp.net core 如何在Kestrel asp.net core上执行ClientCertificateValidation的函数中获取HttpContext?

Asp.net core 如何在Kestrel asp.net core上执行ClientCertificateValidation的函数中获取HttpContext?,asp.net-core,kestrel-http-server,Asp.net Core,Kestrel Http Server,我在Kestrel中有一个asp.net核心自托管应用程序。my Program.cs Main()函数中的.UseKestrel选项的一部分是使用ClientCertificateValidation()功能让我自己的函数验证客户端证书 此验证功能工作正常,但我的自定义验证功能需要能够向已验证的连接添加标识角色。我知道通常可以使用依赖项注入来获取HttpContext,但由于这是我的Program.cs Main()函数中UseKestrel.ClientCertificateValidati

我在Kestrel中有一个asp.net核心自托管应用程序。my 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?
}