在 MVC 中移动 javascript 后,Active 中的访问被拒绝
Posted
技术标签:
【中文标题】在 MVC 中移动 javascript 后,Active 中的访问被拒绝【英文标题】:Access denied in ActiveX after moving the javascripts in MVC 【发布时间】:2017-09-28 10:43:45 【问题描述】:我已经使用 html 在我的项目中成功实现了智能卡读卡器,并且一切都完美 100% 工作,但是当我将所有文件传输到我的 MVC 项目并运行(本地主机)时,我无法执行卡的初始化功能读者。说“访问被拒绝”
在 HTML 中(所有功能都在正常工作,没有访问被拒绝错误)
在 MVC 中
我的对象
<OBJECT id="EIDAWebComponent" style="border:solid 1px gray"
CLASSID="CLSID:A4B3BB86-4A99-3BAE-B211-DB93E8BA008B"
></OBJECT>
更新: 我创建了一个新的 ASP.Net Web 应用程序(空模板),然后我复制了整个 js 和 html 文件。然后将 HTML 页面设置为起始页面。问题可能出在我的本地主机上。当我使用此链接 C:\Public Data ActiveX\PublicDataActiveX.html 在 IE 中浏览我的文件时,activex 正在工作。但是这个链接http://localhost:28679/PublicDataActiveX.html不是。
【问题讨论】:
为什么初始化为HTTPS?您是否在本地环境中设置了 HTTPS?您是否仔细检查了此 URL 是否正确(通过粘贴到浏览器并验证它是否找到了文件):https://localhost:44325/js/eid/eida_webcomponents.js
是的,我可以通过访问该 url 来浏览我的 js 文件。我的应用程序已连接到 azure 活动目录。
【参考方案1】:
问题可能只是为了让 ActiveX 工作而启用 HTTPS。
如果你的堆栈让这变得困难,你可以在顶部有一个代理,比如 nginx:
http://cnedelcu.blogspot.com.co/2014/10/https-with-nginx-setting-up-ssl.html
【讨论】:
HTTP 有同样的错误。我确定问题不在于 SSL。 该站点是否位于允许使用 activex 的 Internet Explorer 区域中?您是否继续将该域添加到 Internet Explorer 配置选项下的安全域列表中?【参考方案2】:您只是分享了一小部分代码和一些图片,因此很难以这种方式提供帮助,但以下是您可能需要考虑的一些提示:
当你说,它在纯 html 中工作,这到底是什么意思?如何浏览它,双击一个html文件并在浏览器中作为本地文件打开,路径类似于“C:\Folder\File.hml”? 或者你是否用域浏览它,也许是“localhost/file.html”? 当你说,转移到一个 MVC 项目,你是什么意思?你是把它放在 View 上还是只是移动了 html 并浏览了它?以上所有问题对于找出问题所在很重要
如果您可以在两种情况下从文件系统浏览 .html 文件并运行您的 MVC 项目,那么问题出在 MVC 本身,它是一个编码问题。 如果您无法在文件系统中浏览完全相同的 .html 并运行您的应用程序,那么问题不是代码,而是权限,可能是 CORS 限制(按域),可能是 ssl(您说不是),也许你需要一个密钥(比如 google api)【讨论】:
1.是的,我从目录中打开 html,双击“C:\Folder\File.hml”。 2. 当我将文件移动到 MVC 项目时,是的,我创建了一个新视图并移动了 html 标记/代码。【参考方案3】:经过大量搜索,我找到了这个link
在 IE 中更改安全设置我的 ActiveX 现在在 localhost 中工作。
打开 IE >> 工具 >> Internet 选项 >> 安全 >> 自定义级别 >>(启用)初始化并编写未标记为可安全执行脚本的 ActiveX 控件
【讨论】:
以上是关于在 MVC 中移动 javascript 后,Active 中的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
Javascript MVC 框架 + jQuery Mobile
c# javascript mvc - 模型验证后出现 Javascript window.confirm 框集