ASP.NETCore中允许客户端证书但不要求的问题。
创始人
2024-09-18 17:00:30
0

在ASP.NET Core中允许客户端证书但不要求可以通过以下代码实现:

  1. 在Startup.cs文件的ConfigureServices方法中添加以下代码:
services.AddMvc()
    .AddMvcOptions(options =>
    {
        options.Filters.Add(new RequireClientCertificateAttribute());
    });
  1. 在RequireClientCertificateAttribute.cs文件中添加以下代码:
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.Primitives;

public class RequireClientCertificateAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        if (context.HttpContext.Request.Headers.TryGetValue("X-SSL-Client-Certificate", out StringValues certificate))
        {
            context.HttpContext.Connection.ClientCertificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(
                Convert.FromBase64String(certificate.ToString()));
        }

        base.OnActionExecuting(context);
    }
}
  1. 在IIS中配置SSL绑定时勾选“Require SSL”和“Client certificates”。

注意:为了测试方便可以使用以下代码获取证书摘要。

var x509Cert = context.HttpContext.Connection.ClientCertificate;
var certThumbprint = x509Cert.Thumbprint;

相关内容

热门资讯

科技通报!红龙扑克机制!竟然是... 科技通报!红龙扑克机制!竟然是真的有挂((2025已更新))(哔哩哔哩)是一款可以让一直输的玩家,快...
一分钟了解!旺旺南平麻将有挂吗... 一分钟了解!旺旺南平麻将有挂吗(辅助挂)果真真的有挂(有挂技巧)-哔哩哔哩;大神普及一款德州ai内幕...
七分钟普及!鱼扑克fishpo... 七分钟普及!鱼扑克fishpoker俱乐部辅助(透视)透视辅助((2023已更新))(哔哩哔哩)是一...
透明私人局!全民雀神辅助(辅助... 1、透明私人局!全民雀神辅助(辅助挂)原来真的有挂(发现有挂)-哔哩哔哩;详细教程。2、全民雀神辅助...
教程辅助!wpk微扑克真的有辅... 教程辅助!wpk微扑克真的有辅助插件吗!果真真的有挂((2021已更新))(哔哩哔哩);原来确实真的...
透视线上!微友麻将输赢规律(辅... 透视线上!微友麻将输赢规律(辅助挂)其实是真的有挂(有挂解密)-哔哩哔哩;致您一封信;亲爱微友麻将输...
6分钟普及!德扑赔率胜率计算(... 6分钟普及!德扑赔率胜率计算(辅助挂)辅助透视((2022已更新))(哔哩哔哩)是一款可以让一直输的...
玩家必看科普!雀神麻雀赢(辅助... 玩家必看科普!雀神麻雀赢(辅助挂)竟然真的有挂(有挂细节)-哔哩哔哩 科技详细教程;75744690...
教程攻略!扑克世界辅助软件!其... 教程攻略!扑克世界辅助软件!其实真的有挂((2024已更新))(哔哩哔哩)是一款可以让一直输的玩家,...
重大通报!中天游戏怎么开挂(辅... 相信很多朋友都在电脑上玩过中天游戏怎么开挂吧,但是很多朋友都在抱怨用电脑玩起来不方便。为此小编给大家...