如何确定用户的证书是否即将过期

时间:2009-11-09 06:38:55

标签: asp.net certificate

我在IIS7上有一个WebForms应用程序,客户端通过证书进行身份验证。有没有办法从客户端证书(服务器上的一个或客户端提供的证书)中读取它以查明它何时到期?怎么办呢?

我想阻止用户在过期时看到403并按时向他们提供新证书。

据我所知,这是证书服务器应该做的事情但严重的是,证书服务器连接到Web服务器的工作有多少......

1 个答案:

答案 0 :(得分:2)

您可以通过Request.ClientCertificate这样做,它是HttpClientCertificate类型的对象。查看VALIDFROM和VALIDUNTIL字段。

    Dim sbCert as new StringBuilder()
    Dim cert As HttpClientCertificate = Request.ClientCertificate
    If cert.IsPresent Then
        For Each strKey As String in cert
            sbCert.Append(strKey & " = " & cert(strKey) & "<br />") 
        Next
    Else
    sb.Append("Client certificate not present")
    End If
    Response.Write(sbCert.ToString())