2011-10-20 24 views
1

我有一些代碼,檢索一些XML然後嘗試驗證XML簽名。 根據this post,SignedXml類型的驗證方法需要完全信任才能執行xml簽名驗證。由於我的代碼需要在沙盒中運行,因此我沒有完全信任,因此正在拋出安全異常。我可以驗證沙盒內的XML簽名嗎?

如果是這種情況,那麼是否有其他方法來驗證XML簽名(最好不需要購買第三方軟件)?

回答

1

看來這是不可能的。我的解決方法是避免依賴簽名的XML並添加散列。這是不太安全的,但是如果不利用任何完整信任的代碼,我可以做的最好。

0

我認爲有一種方法可以做到這一點,如果你不需要使用XmlResolver

MSDN docs說:「在.NET Framework 1.1版中,調用者必須完全信任才能指定XmlResolver。」。我運行在.NET 4.5的中等信任環境中,並且我的可以成功設置爲XmlResolver。因爲我知道我永遠不需要解析XML文檔中的任何外部引用(解釋這是什麼意思here)我可以將SignedXml.Resolver設置爲null。在我的情況下,這解決了這個問題,並允許在共享主機環境(GoDaddy)中使用SignedXml

注意如果你想使用SecureXmlResolver需要FullTrust