我有一台 Win2008 服务器 IIS7 和使用 CAC 卡登录的用户。我想在用户登录时将用户的 CAC 卡用户名添加到网页中。我还想将 CAC 卡中的用户信息记录到我的 Web 服务器上,这样我就可以看到谁在访问我的网站。
答案1
如果启用了客户端证书(网站 > SSL 设置 > 客户端证书 > 接受),当用户使用智能卡进行身份验证时,证书将作为请求对象的一部分存在。您可以使用 ClientCertificate 的 Subject 属性检索它。
if (Request.ClientCertificate.IsPresent)
{
X509Certificate2 clientCertificate = new X509Certificate2(Request.ClientCertificate.Certificate);
Debug.WriteLine("Subject: {0}", clientCertificate.Subject);
Debug.WriteLine("Issuer: {0}", clientCertificate.Issuer);
Debug.WriteLine("Valid Until: {0}", clientCertificate.NotAfter.ToString("yyyy-MM-dd HH:mm"));
Debug.WriteLine("Valid From: {0}", clientCertificate.NotBefore.ToString("yyyy-MM-dd HH:mm"));
Debug.WriteLine("Serial Number: {0}", clientCertificate.SerialNumber);
Debug.WriteLine("Thumbprint: {0}", clientCertificate.Thumbprint);
Debug.WriteLine("Public Key: {0}", clientCertificate.GetPublicKeyString());
}
答案2
您希望 IIS7 需要 SSL 客户端证书,这就是为什么用户需要通过他们的读卡软件向 Windows 提供证书,浏览器将证书从卡传递到 IIS7。
- 打开 IIS 管理器并导航到您想要管理的级别。
- 在功能视图中,双击 SSL 设置。
- 确保您处于站点、应用程序或目录级别
- 在 SSL 设置页面上,选择需要 SSL。
- 在“SSL 设置”页面的“客户端证书”区域中选择:要求要求客户端证书。
以下是来自技术网。
这与 Gregs 的回答相结合应该足以帮助您入门。
我还会与您的法律团队一起运行此程序,看看您是否可以记录连接,您可能需要在页面上同意监控序言。