gpt4 book ai didi

asp.net-mvc - ASP.NET MVC 2 和请求客户端证书(智能卡身份验证)

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:23 24 4
gpt4 key购买 nike

我需要从他们的卡中获取用户的 X.509 证书并映射到用户表以在 ASP.NET MVC 中进行表单例份验证。我在 VS 2008 中创建了一个 MVC(版本 2)项目,配置为使用默认模板在 Vista 上的本地 IIS 中的默认网站下作为虚拟目录运行,但将 RequireHttpsAttribute 添加到帐户/登录 ActionResult。没有其他变化。使用本地 IIS 管理器,我创建并应用了一个自签名证书,然后将 Account/Logon.aspx 页面设置为需要 SSL 和需要客户端证书。

在调试中运行,当我从欢迎页面(主页/索引 View )单击“登录”链接时,它使用 https 正确路由到 Account/Logon.aspx,但没有提示证书。使用 Dynatrace(很棒,http://ajax.dynatrace.com),我可以看到响应状态设置为 403,但同样没有证书提示。

作为健全性检查,我在 Vista 的默认网站(与上面的 MVC 项目相同)的虚拟目录中设置了一个默认的 asp.net web 应用程序项目,并将 default.aspx 页面配置为需要 SSL 和需要客户端证书,如上面的 MVC 项目中所做的那样。运行它,工作正常,我得到证书提示,可以选择证书并输入卡的 PIN 并从后面代码中的 request.clientcertificate 对象读取我的 X.509。

两个虚拟目录的应用程序池都设置为集成管道模式下的经典 .NET AppPool。

帮助?!

更新: super 笨拙的解决方法正在进行中。我在 MVC 项目中添加了一个文件夹“Auth”和一个“GetCert.aspx”文件,将其标记为 SSL/Require 客户端证书,然后将“routes.IgnoreRoute("Auth/{*pathInfo}")”添加到全局.asax。 GetCert.aspx response.writes 的代码隐藏我想要从 X.509 中获取的数据。然后我在 LogOn.aspx 中添加了一个 jquery.get 调用,它调用 GetCert.aspx 并将证书主题结果作为字符串返回到 LogOn.aspx 中的 div。我现在得到证书提示并在我的 MVC View 中得到结果,但这不是执行此操作的方法!

最佳答案

我有一个使用表单例份验证和我的基本 Controller 类上的授权属性的工作解决方案,因此所有未经身份验证的请求都转到帐户/登录。登录页面发布按钮路由到一个名为 Authorize 的操作,该操作用 RequireHttps 属性装饰,该属性正确触发客户端证书提示。选择证书后,授权操作会处理解析 HttpClientCertificate 以获得我想要的用户信息,并在我的用户表中进行匹配查找并写入身份验证 cookie。然后我有一个 HttpModule 读取 cookie 以在 AuthenticateRequest 事件中创建一个自定义主体。这一切都很好。我正在为下一期关于“忽略客户端证书”的 IIS 配置打开另一个问题:https://stackoverflow.com/questions/4141272/iis-6-ssl-client-certificates-configuration

关于asp.net-mvc - ASP.NET MVC 2 和请求客户端证书(智能卡身份验证),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3825373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com