如何从 ASP.NET 站点访问智能卡?
Posted
技术标签:
【中文标题】如何从 ASP.NET 站点访问智能卡?【英文标题】:How can i access to smartcard from ASP.NET site? 【发布时间】:2010-06-09 14:10:39 【问题描述】:我需要与来自 ASP.NET 站点的智能卡通信。我已经创建了一个 dll(使用 Winscard.dll 和 MCSCM.dll,即 SCM Micro Reader 的 dll),它可以在 Windows 上与读卡器一起使用,但我无法将它与 ASP.NET 一起使用。该项目将仅在 IE 上运行,我必须避免使用 javascript。
感谢您的帮助。
【问题讨论】:
我试图创建一个由页面加载的 WindowsForm 控件,它可以工作,但我无法获得与 CardReader 交互的安全权限。 【参考方案1】:我在 8 年前遇到过这个问题,但当时我们称之为 ASP
问题在于 ASP 代码在远程服务器上运行,而您的智能卡读卡器是本地硬件
我如何解决它是一个小型客户端应用程序,它定期轮询智能卡读卡器以进行卡插入/移除。如果插入了一张卡片,它就会调用一个网络服务来提醒服务器,服务器会根据卡片和一些随机数创建一个唯一的密钥。然后它要求用户输入一个与卡号和随机数相关的 PIN。
这意味着它需要特定的卡和不可重复的号码。我很确定我使用 SSL 来加密网络服务消息,这当然是系统中最脆弱的部分
我就是这样做的。 SCM 技术支持人员非常乐于助人,而且英语说得很好,可能值得给他们点赞
【讨论】:
【参考方案2】:我找到了解决方案。我加载了一个创建 activeXobject 的 Javascript 并使用我安装在客户端上的 dll。像这样的:
<script language="javascript">
function Run()
var x = new ActiveXObject("ASC.SC");
txtRd.value = x.AutoRead();
</script>
感谢您的帮助。
【讨论】:
【参考方案3】:我的公司为此目的制作了一个商业插件。
它包括 IE 和 firefox/chrome 支持,并提供一种脚本语言来编写控制智能卡的简单服务器端脚本。它还包括与浏览器交互的功能(例如将从智能卡读取的值放入网页上的字段中,或导航到不同的网页)。
网上有很多演示,你可以用看看它是否符合你的要求:https://cardboss.cometway.com
【讨论】:
【参考方案4】:如果您尝试使用智能卡进行身份验证,您应该使用我的同事编写的Smartcard Authentication Module。它非常安全,应该可以解决问题。
【讨论】:
以上是关于如何从 ASP.NET 站点访问智能卡?的主要内容,如果未能解决你的问题,请参考以下文章
无法从 ASP.Net 网站项目中的代码访问 App_Code 中的类
ASP.NET WebForms Authentication Logout, Cookie 仍可用于访问站点