我在c#上创建了一个用于签名PDF的应用程序。它完全适用于我的visual studio web项目,但是当我在我的测试服务器上发布它时,它会抛出这个Error
在这种情况下,我试图执行在服务器上签署pdf的代码,并且错误发生在该行上:
System.Security.Cryptography.Pkcs.SignedCms.ComputeSignature()
应该在你的桌面上抛出一个窗口,询问你的证书(读一张智能卡),然后就像这样询问你的PIN Windows Security Window但我确信这是不可能的,因为它意味着服务器必须能够与客户端的桌面进行交互
好的,既然我已经解释了我所面临的所有环境,这里是我迄今为止尝试过的解决方案:
1)尝试纠正上面的服务器错误:我进入了服务器IIS>应用程序池> MyPage>高级设置>流程模型>加载用户配置文件并选择了True而不是False( Didn' t工作)
2)仍在尝试纠正我去过计算机管理的服务器错误>服务和应用程序>服务并打开服务"交互式服务检测" (仍然无法正常工作,即使我在客户端计算机上执行此操作也无法正常工作)
3)最后,我猜这是不可能在服务器上运行代码,因为上面的错误行是Windows安全的本机调用所以我想:如果我尝试从中运行代码怎么办?客户端?。就像c#applet等价物一样,嗯......有两种方法可以做到这一点:ActiveX(旧技术)和Silverlight(更新)。问题是我不能在chrome上创建一个简单的Silverlight程序,它在firefox和IE上运行但是如果不在chrome上工作则完全是浪费,所以我的最后一个选择是让它运行一个ActiveX,互联网上几乎没有关于那个
的有用信息如果有人可以告诉我该怎么做,要么纠正错误,要么让我的程序从客户端运行,我会非常感激
答案 0 :(得分:0)
您无法从Web客户端调用系统的api,因为这会破坏沙箱。如果你必须使用该系统调用,请在将处理弹出窗口的服务器上创建一个包装器,尽管这将是一个非常" hacky"解。如果我必须使用所谓的本机系统调用,你应该问我为什么要使用Web客户端接口。