Asp.net mvc ASP.NET MVC 2和请求客户端证书(智能卡身份验证)
我需要从用户的卡中捕获用户的X.509证书,并映射到用户表,以便在ASP.NET MVC中进行表单身份验证。我在VS 2008中创建了一个MVC(2版)项目,配置为使用默认模板在Vista上的本地IIS中的默认网站下作为虚拟目录运行,但在帐户/登录操作结果中添加了RequireAttribute。没有其他变化。使用本地IIS管理器,我创建了一个自签名证书并应用了它,然后将Account/Logon.aspx页面设置为需要SSL和客户端证书 在调试中运行时,当我从欢迎页面(主页/索引视图)单击“登录”链接时,它会使用https正确路由到Account/Logon.aspx,但不会提示输入证书。使用Dynatrace(awesome,),我可以看到响应状态被设置为403,但同样没有证书提示 作为健全性检查,我设置了一个默认asp.net web app项目,以在Vista中默认网站(与上面的MVC项目相同)的虚拟目录中运行,并将default.aspx页面配置为需要SSL和客户端证书,如上面的MVC项目所做的。运行它,工作正常,我得到证书提示,可以选择cert并输入卡的PIN,然后从代码后面的request.clientcertificate对象中读取我的X.509 在集成管道模式下,两个虚拟目录的应用程序池都设置为Classic.NET AppPool 救命啊 更新:Asp.net mvc ASP.NET MVC 2和请求客户端证书(智能卡身份验证),asp.net-mvc,ssl,client,certificate,smartcard,Asp.net Mvc,Ssl,Client,Certificate,Smartcard,我需要从用户的卡中捕获用户的X.509证书,并映射到用户表,以便在ASP.NET MVC中进行表单身份验证。我在VS 2008中创建了一个MVC(2版)项目,配置为使用默认模板在Vista上的本地IIS中的默认网站下作为虚拟目录运行,但在帐户/登录操作结果中添加了RequireAttribute。没有其他变化。使用本地IIS管理器,我创建了一个自签名证书并应用了它,然后将Account/Logon.aspx页面设置为需要SSL和客户端证书 在调试中运行时,当我从欢迎页面(主页/索引视图)单击“登
超级笨拙的解决方案正在进行中。我在MVC项目中添加了一个文件夹“Auth”和一个标记为SSL/Require client certificates的“GetCert.aspx”文件,然后在global.asax中添加了“routes.IgnoreRoute(“Auth/{*pathInfo}”)”。GetCert.aspx response.com的代码隐藏写入我想要从X.509获取的数据。然后我在LogOn.aspx中添加了一个jquery.get调用,它调用GetCert.aspx并将证书主题结果作为字符串返回LogOn.aspx中的一个div。我现在得到证书提示,并在我的MVC视图中得到结果,但这不是做到这一点的方法 我有一个有效的解决方案,在我的基本控制器类上使用forms身份验证和authorize属性,以便所有未经身份验证的请求都转到Account/LogOn。“登录页面发布”按钮路由到名为“授权”的操作,该操作由RequireHttps属性修饰,该属性可正确触发客户端证书提示。选择证书后,“授权”操作将解析HttpClientCertificate以获取所需的用户信息,并在“我的用户”表中进行匹配查找,并写入验证cookie。然后,我有一个HttpModule,它读取cookie以在AuthenticateRequest事件中创建自定义主体。这一切都很好。我在这里为下一期关于“忽略客户端证书”的IIS配置打开另一个问题:可能对某人有用:和