c# - 摆脱 WS 安全 header 中的 Expires 节点 (xml)

标签 c# .net xml web-services wse

从下面的代码片段中,我如何摆脱 (xml node) 标签?我想摆脱它或将其作为空元素传递。它是 objClient.RequestSoapContext.Security.Timestamp.Expires 中的只读属性。感谢您的帮助。

<wsse:Security soap:mustUnderstand="1">
        <wsu:Timestamp wsu:Id="Timestamp-26d09d54-10ef-4141-aa2c-11c75ed8172b">
          <wsu:Created>2010-03-08T15:32:16Z</wsu:Created>
          <wsu:Expires>2010-03-08T15:37:16Z</wsu:Expires>
        </wsu:Timestamp>
        <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="SecurityToken-7c9b80ec-98e9-4e41-af2e-ad37070cbdd3">
          <wsse:Username>bubba</wsse:Username>
          <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">dsfdfsdfsfs+-dasdf=</wsse:Password>
          <wsse:Nonce>QQ3C4HUfO2CyGx7HrjzMzg==</wsse:Nonce>
          <wsu:Created>2010-03-08T15:32:16Z</wsu:Created>
        </wsse:UsernameToken>
      </wsse:Security>

我发现并致力于实现:http://blogs.msdn.com/dhrubach/archive/2008/06/16/modifying-the-security-header-generated-by-wse-runtime.aspx - 它对我不起作用

注意:仍在努力使用我在上面发布的链接中描述的方法。

编辑 2:我现在可以使用断言手动生成大部分 header 。将密码插入安全 header XML 时如何对密码进行哈希处理

最佳答案

好吧,我绝对可以帮助您解决问题的密码生成部分。 :-)

根据 the spec (第 113 行),它是:

Base64(SHA1(nonce + created + password))

文档还指出,应将随机数转换回其二进制形式,并且应按原样使用创建的时间戳(第 129–131 行)。

假设您的密码是“supercalifragilisticexpialidocious”。那么你散列的值(给定问题中发布的示例文档)将是 UnBase64("QQ3C4HUfO2CyGx7HrjzMzg==") + "2010-03-08T15:32:16Zsupercalifragilisticexpialidocious"

关于c# - 摆脱 WS 安全 header 中的 Expires 节点 (xml),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2402537/

相关文章:

C# 应用程序在关闭自定义表单时崩溃

c# - 命令绑定(bind)在 Flyout 或 FlyoutMenu 中不起作用

.NET System::String 到存储在 char* 中的 UTF8 字节

c# - 如果用户使用 ASP.NET 在浏览器中直接输入 URL,如何重定向到登录页面

.net - .Net 3.5 中的 XML 序列化是否仍然存在已知的内存泄漏?

c# - 托管和非托管代码、内存和大小有什么区别?

Android xml样式引用属性崩溃

c# - 如何从 xml 文档中删除特定节点?

c# - ASPNET MVC : Getting rid of apple-touch-icon errors : The controller for path Controller1/apple-touch-icon-precomposed. png 未找到

c# - 使项目在多个 .NET 版本之间保持同步