【发布时间】:2011-11-15 16:17:59
【问题描述】:
我有一个带有 XmlNode 参数(我也尝试使用 XElement)和 XmlNode 返回类型的 Web 服务。
问题是,我传递了一个没有命名空间的参数:
<client>
<name>Test</name>
</client>
然后服务器会收到这样的信息:
<client xmlns="">
<name>Test</name>
</client>
返回对象也是如此。
通常不会有问题,但我使用自定义校验和来验证请求。类似于将 xml 参数的 MD5 传递给另一个参数。当服务器声明命名空间时,它会破坏 MD5。
现在我用替换来删除声明以使 md5 正常工作。 有人有更好的主意吗? (没有变通方法)
【问题讨论】:
-
为什么不提供自己的命名空间?
-
@Carsten König:因为在我的应用程序中,命名空间是无用的(对于参数,网络服务有一个正确的命名空间),现在更改它会使客户端(这不是我的)“崩溃”
-
您应该使用能够理解 XML 的加密机制。例如,SignedXml class.
-
@JohnSaunders 这可以工作,但我不知道客户端(不在 .net 中)是否可以提供相同的加密。
-
SignedXml实现标准数字签名。
标签: c# xml web-services namespaces asmx