我有一些代码可以检索一些xml,然后尝试验证xml签名。 根据{{3}},SignedXml类型的验证方法需要完全信任才能执行xml签名验证。由于我的代码需要在沙箱中运行,因此我没有完全信任,因此会抛出安全异常。
如果是这种情况,那么还有其他方法可以验证xml签名(最好不需要购买第三方软件)吗?
答案 0 :(得分:1)
似乎这是不可能的。我的解决方法是避免依赖签名的xml并添加哈希。这远不那么安全,但是如果不使用任何完全信任的代码,我就能做到最好。
答案 1 :(得分:0)
如果您不需要使用XmlResolver
,我认为有一种方法可以执行此操作。
MSDN docs说“在.NET Framework 1.1版中,调用者必须完全信任才能指定XmlResolver。”我在.NET 4.5的中等信任环境中运行,我可以成功设置XmlResolver
。因为我知道我永远不需要解析我的XML文档中的任何外部引用(解释这意味着什么here)我可以将SignedXml.Resolver
设置为null
。在我的情况下,这解决了问题并允许在共享托管环境(GoDaddy)中使用SignedXml
。
请注意,如果您想使用SecureXmlResolver
需要FullTrust
。