我正在尝试使用三个元素验证Web应用程序的登录:
我打算将这三个元素放在一个表中,所以当用户意图登录时,它会将这三个元素发送到服务器端并进行检查。
例如,如果用户在未分配给他的PC中加载Web应用程序,则服务器将验证用户标识和密码是否正确,但客户端证书不属于用户,并拒绝登录。
我还没有在每台客户端PC上安装客户端或机器证书,也没有在IIS中安装CA.但根据Microsoft,一个asp.net Web应用程序将自动发送客户端或机器证书到服务器,asp.net可以得到它。我也找到了另一个program example。
怎么可能?我总是认为asp.net web应用程序无法读取客户端资源,如果你想读取客户端资源,那么你应该使用像ActiveX这样的东西来解决它的所有复杂问题。
答案 0 :(得分:2)
您说得对,ASP.NET无法读取任何客户端资源。 ASP.NET与从用户的PC获取客户端证书无关。
您要做的是告诉您的Web服务器(IIS)请求或要求客户端证书。服务器正在添加一个特殊的http标头,以告诉浏览器发送客户端证书。浏览器向Windows请求一个,或使用自己的商店(Firefox)。然后,浏览器将客户端证书的公共部分发送到服务器。
您的ASP.NET可以询问IIS浏览器是否已发送证书并访问该信息以进行身份验证。