いくつかのxmlを取得してからxml署名を検証しようとするコードがあります。この投稿によると、SignedXmlタイプの検証方法では、xml署名の検証を実行するために完全な信頼が必要です。コードをサンドボックスで実行する必要があるため、完全な信頼が得られないため、セキュリティ例外がスローされます。
この場合、xml署名を検証する他の方法はありますか(できればサードパーティのソフトウェアを購入する必要はありません)?
いくつかのxmlを取得してからxml署名を検証しようとするコードがあります。この投稿によると、SignedXmlタイプの検証方法では、xml署名の検証を実行するために完全な信頼が必要です。コードをサンドボックスで実行する必要があるため、完全な信頼が得られないため、セキュリティ例外がスローされます。
この場合、xml署名を検証する他の方法はありますか(できればサードパーティのソフトウェアを購入する必要はありません)?
これは不可能のようです。私の回避策は、署名されたxmlに依存することを避け、ハッシュを追加することでした。これははるかに安全性が低くなりますが、完全信頼コードを使用せずにできる最善の方法です。
を使用する必要がない場合は、これを行う方法があると思いますXmlResolver
。
MSDNのドキュメントには、「。NET Frameworkのバージョン1.1では、XmlResolverを指定するには、呼び出し元が完全に信頼されている必要があります」と記載されています。.NET 4.5を使用した中程度の信頼環境で実行しており、正常に設定できXmlResolver
ます。XMLドキュメント内の外部参照を解決する必要がないことを知っていたので(これがここで何を意味するかについての説明)、をに設定しても問題ありませんでしSignedXml.Resolver
たnull
。私の場合、これで問題が修正さSignedXml
れ、共有ホスティング環境(GoDaddy)での使用が可能になりました。
SecureXmlResolver
使用したい場合はが必要になることに注意してくださいFullTrust
。