asp.net - 客户端身份验证 - 处理客户端证书

标签 asp.net authentication ssl x509certificate

我有一个 ASP.net Web 应用程序,我的客户需要使用客户端 v3 证书对我的网站进行身份验证。

我需要检查的是: 1-证书有效 2-“Issued To CN”具有特定值

我在我的 MVC 操作中执行以下操作:

var req = Request.ClientCertificate;

req 有一个名为 IsValid 的属性,它足以满足要求 (1)。现在,这里的问题是我无法检查 CN,因为我认为它存储在 byte[0] 类型的另一个名为 Certificate 的属性中。

我试过像这样阅读证书:

var x509 = new X509Certificate(req.Certificate);

但我有两个异常(exception):

'x509.Issuer' threw an exception of type 'System.Security.Cryptography.CryptographicException'
'x509.Subject' threw an exception of type     'System.Security.Cryptography.CryptographicException'

如何读取证书?

最佳答案

典型的方法是将证书属性(例如主题或 CN)映射到一个或多个用户。这是通过 IIS configuration 完成的.

完成后,所有 MVC 要做的就是 check the current user .

另见 this article .

关于asp.net - 客户端身份验证 - 处理客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39694325/

相关文章:

javascript - 如何在 JavaScript 中编写 cookie 来记住用户名

java - 手工/使用 OkHttp 客户端深度配置 TLS Client Hello 消息

c# - ServiceStack 自定义用户身份验证

java - 在 Servlet 3.0 HttpServletRequest#login() 身份验证后重定向到 protected 资源或原始/保存的请求?

ssl - TLS 连接超时与 TCP 连接超时

ssl - PKIX 路径不与 Windows 环境中的任何信任 anchor 错误链接

html - 如何确保验证器错误消息显示在右侧?

c# - 只允许匿名用户访问登录和注册页面

c# - 确保我的 C# 桌面应用程序正在向我的 ASP .NET MVC 操作发出请求?

c# - 在 visual studio 中查看 .mdf 文件的数据