c#-使用客户端证书的智能卡身份验证

提问

我有一个第三方Web应用程序,现在我的经理想向某些页面(而不是整个应用程序)添加智能卡身份验证,并返回证书信息.我想在这些页面上添加按钮,然后在onclick事件中,我将执行客户端证书身份验证(其中将显示证书选择窗口,然后是“ PIN”窗口),并返回证书对象以进行进一步处理.

最初,我考虑过使用Web服务执行客户端证书身份验证并返回证书信息,这非常好,因为我们可能会考虑在其他Web应用程序(在不同平台上)中使用该Web服务.但是,我找不到执行此操作的任何代码示例.然后我找到了IIS solution.

我现在创建了一个单独的文件夹,其中包含需要客户端证书的页面.在按钮单击事件上,我重定向到该页面.然后,在该页面上,我使用X509Certificate类检索证书信息.我认为这对我尝试做的事情没有帮助,或者至少我不知道它有什么帮助.

所以我的问题是(很长的背景描述很抱歉)

>如何从认证结果页面重定向回来?
>如果可能,是否有关于如何构建以IIS相同方式进行客户端证书身份验证的Web服务的参考?

谢谢

更新资料
我环顾四周,仍然对如何实现这一目标一无所知.我不确定如何在Web服务的SSL / TLS握手阶段进行编码.我也不知道如何将证书返回到我调用此函数的页面.因此,我现在要做的是从需要客户端身份验证的受保护页面重定向.似乎Web服务器缓存了身份验证结果.这是我的第三个问题,希望有人能回答.

如何在页面会话结束时清除身份验证结果,以便每次访问该页面时都请求客户端身份验证(在该窗口中将显示证书选择窗口,然后是“ PIN”窗口)?

最佳答案

如果您的应用程序托管在IIS中,则只需在web.config中添加一个部分,说明这些页面需要客户端证书.然后,浏览器将要求用户提供证书.