在客户端运行c#代码或使Web会话交互?

问题描述:

我在c#上制作了一个用于签署PDF的应用程序。它的作品完美地在我的Visual Studio Web项目上,但是当我将它发布在我的测试服务器上时,它将我引向此Error在客户端运行c#代码或使Web会话交互?

在这种情况下,我试图执行在服务器上签署pdf的代码,具体上线:

System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature() 

它应该抛出您的桌面上的一个窗口,要求您的证书(读取智能卡),然后询问你的密码就这样 Windows Security Window但我有预感,这是不可能,因为它意味着服务器必须有可能与客户端桌面进行交互

好了,现在,我已经解释一切,我现在面临的环境,这里是我试过至今的解决方案:

1)试图纠正的服务器错误上面:我的服务器去到IIS>应用程序池>我的页面>高级设置>流程模型>加载用户配置文件和虚假真正的选择,而不是(没有工作

2)仍试图纠正我到计算机管理>服务器错误服务和应用程序>服务并打开服务“交互式服务检测”(即使我在客户端计算机上也这样做,仍然不能正常工作并且不工作)

3)最后,我猜想无法在服务器上运行代码,因为上面的Error行是Windows安全性的本地调用,所以我想:如果我尝试从客户端运行代码,该怎么办? 。就像一个c#applet相当于什么,好吧...有两种方法可以做到这一点:ActiveX(旧技术)和Silverlight(新)。问题是,我无法在Chrome上启动一个简单的Silverlight程序,它在Firefox和IE上运行,但如果在Chrome上无法运行,则完全是浪费,因此我的最后一个选择是使其运行ActiveX,并且存在关于

互联网几乎没有有用的信息,如果有人能告诉我该怎么做,既可以纠正错误或使从客户端我的程序运行,我会非常感激

+0

这听起来像是你要求现代浏览器不支持的功能,因为它们违反了浏览器的沙盒原理(浏览器中的代码不应该能够在严格禁止的路径之外与用户的系统进行交互) 。有什么理由不能在js中实现一个模态? –

+0

嗯,我不能,因为我不知道方法“computeSignature()”做了什么,内部代码对我来说是不可见的,因为它是加密安全库的一部分。如果我可以在JS中做一个模态,我就已经完成了(*请重新阅读这个问题,我刚刚编辑它*) –

+0

嗨,当提到错误时,您从未将图像放在您的问题中。使用代码片段。是一个建议或有人会downvote你的问题。 – diugalde

你无法从Web客户端调用系统的API,因为这会破坏沙箱。如果您必须使用该系统调用,请在将处理弹出窗口的服务器上创建一个包装器,尽管这将是一个非常“黑客”的解决方案。如果我必须使用本地系统调用,你应该真的在问我为什么要使用Web客户端接口。