ASP.NET CAC登录后验证

ASP.NET Authenticate after CAC login

我希望我只是错过了一步,希望有人能为我指明正确的方向。用户有一个 CAC,它通过 IIS 使用他们的 PIN 进行身份验证。输入后,我需要在网站上对用户进行身份验证,而无需他们输入用户名或密码。我无法使用活动目录身份验证。我现在假设表单身份验证。

假设登录的用户已经注册,并且他们的信息以及允许的角色都在数据库中(我可以根据 CAC 上的客户端证书中的信息查找)...什么我需要 implement/read 进行流程以在网站上对所述用户进行身份验证吗?

预先感谢您advice/information。

BrianW

首先研究从证书本身提取数据。如果您从电子邮件证书中提取,您可以提取 UserPrincipalName,这对于您的潜在用户群来说几乎是完全不可变的,并且即使他们的名字发生变化也可以成为关键用户。如果要使用 'normal' 身份证书,则需要从 CN 属性中提取 10 位数字 (EDIPI),该数字将不可变。您可以只使用 CN 开始,但要注意它不是一成不变的,名称更改会导致它在后续卡上被修改,而 EDIPI 将保持不变 [同样,对于 99.9% 以上的用例;只有当某人错误地获得第二张卡/身份时,这才会失败,而且这种情况很少见。