问题标签 [wse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5725 浏览

c# - 尝试通过 WSE 或 WCF 访问 Web 服务时出现“签名或解密无效”

我已经获得了需要使用 C# 访问的 WSDL 和 Web 服务的 URL。通过 HTTPS 访问 Web 服务,并指示我需要使用已提供给我们的证书对 SOAP 有效负载进行签名。我们还获得了一个示例 SOAP 消息,当我将它插入到 soapUI 中时,它会返回一个有效的响应。该消息如下所示:

我尝试使用 WSE 3.0 和 WCF 访问此服务。我知道 WSE 已经过时了,我不应该使用它,但是我非常渴望在这一点上有效的东西,而且我对 WCF 的运气也没有更好。

这是我的 WSE 实现:

这是我的 WCF 实现:

我的 .config 文件如下所示:

通过 WSE 生成的 SOAP 调用如下所示:

WCF SOAP 请求如下所示:

无论我尝试使用 WSE 做什么,都会收到一条错误消息,提示“签名或解密无效”。如果我尝试 WCF 实现,我会得到“元素 'o:Security' 中的数据必须被理解但无法处理”。我一直在为此烦恼-有人有什么想法吗?

编辑:当前 SOAP 请求:

0 投票
1 回答
232 浏览

asp.net - 如何让 wcf 服务使用我的 asp.net 请求/响应过滤器?

我有一个使用微软 WSE 库的旧肥皂网络服务。现在我们的目标 .net 框架和操作系统不支持它。我已将服务转换为在服务器上使用 wcf,但客户端仍将使用旧的 Web 服务代理。我目前遇到的问题是客户端压缩http请求以节省我们的带宽。在 asp.net 应用程序中,我有一个 httpmodual,它根据请求标头的内容编码检测客户端发送是否使用 gzip/deflate。现在服务是 wcf,它不会从 asp.net 请求流中读取,并且解压缩不起作用。不压缩请求的客户端当前可以工作。如何使 wcf 服务与 asp.net 管道集成?

0 投票
1 回答
942 浏览

wcf - 将 SAML2 令牌与 WCF channelfactory 和 Weblogic 服务一起使用

帮助!:) 我在尝试进行以下工作时遇到了无穷无尽的问题(如果我没有使用正确的术语,请提前道歉):)

我需要一个 .NET Web 应用程序(客户端)与受 SAML 2 策略保护的 Weblogic Web 服务进行通信。我需要使用 .NET 3.5/4 有一些限制,因此我使用 WIF(带有扩展名)来处理配置为生成 SAML2 令牌的 ADFS2。

到目前为止,网站 -> adfs2 -> SAML2 令牌位运行良好 - 我肯定会通过令牌。

附加 (1) - Weblogic 服务必须使用 SAML2 策略来实现发送者担保确认方法,尽管 ADFS 2 默认提供不记名,但我能够在我们通过线路将令牌发送到服务之前操纵 SAML 断言( s)。

Additional(2) - 由于多种原因,无法通过 SSL 访问 web 服务,basicHTTPBinding 是我唯一的选择。

现在的问题..我只是无法与 Weblogic 进行通信,以便在请求中发送令牌(由于请求中没有有效的安全标头,任何记录的尝试都会返回 oracle“常规 Web 服务安全错误” )。首选方法是通过 WCF,使用通道工厂 - 下面的代码是我尝试过的粗略示例 - 声明身份/令牌内容取自 WIF 扩展内容附带的代码示例:

以下帖子中的答案(以及我能找到的其他任何地方): WCF and WebLogic SAML interop

..正是我正在做的 - 但无论是使用 WireShark 查看流量还是通过实现客户 MessageInspector 并查看“BeforeSendRequest”中的请求,我都看不到令牌的任何迹象(并且请求被拒绝为结果)。

此外,我是否操纵令牌以包含发件人担保或仅将其保留原样也没关系。

附加 (3):如果我不使用 ADFS2/SAML/WIF/WCF 等,我已经能够与 Weblogic 服务成功通信,而是通过更基本的 WSE2.0/3.0 Web 引用方法(即创建SoapRequest、用户名令牌等。)

问题在于在没有用户交互的情况下提供有效的用户名和密码。换句话说,保持“SSO 方法”,而不必每次都实施表单身份验证(或等效方法)来获取用户凭据。似乎没有任何明显的方法可以将 ADFS 生成的 SecurityToken 与 WSE 结合使用任何一个..

任何人都可以帮忙阐明一下吗?为什么使用提供的令牌的 WCF 通道工厂方法根本不起作用,即在调试时没有有效令牌的迹象,而且 Weblogic 肯定没有接收到有效的 SAML 令牌。

我还研究了使用 CustomMessageEncoder 路由,并以这种方式将 SAML 断言添加到 SOAP 标头中。但据我所知,它真的不应该这么难。WCF 中有什么东西坏了吗?

0 投票
1 回答
1738 浏览

c# - 带有 SAML 的 wsse 安全标头

我需要使用服务提供商公开的 Web 服务。我从他们那里得到了 WSDL 文件。在 SOAP 请求标头中,我必须添加带有 SAML 断言的 wsse:Security 标头。

请查看下面的 wsse:Security 标头。我进行了很多搜索并尝试使用 WSE 3.0、WIF 和 WCF。帮助我进一步移动花了大约 15 天,我的时间不多了。

我不需要密码。如果你给我线索就足够了。

谢谢和问候, P.Ponkarthik

0 投票
0 回答
880 浏览

wcf - 服务引用无法正确反序列化并将 null 放入字段(asp.net 到 asp.net)

所以我在我的 VS2010 项目中的服务参考有一个奇怪的问题,我真的无法弄清楚。

每当我重建附加服务引用的soap服务时,我都无法再反序列化来自其中一种方法的数据。所有其他方法都有效,但特别是其中一种方法只是填充了空值/默认值,而不是正确的值。我可以确认 Web 服务仍在返回良好的数据并且看起来格式正确。一旦我更新了服务引用,它就会再次工作,直到我重建。

当我去查看结构的差异时,我发现以下文件现在有所不同:

  • 配置.svcinfo
  • 配置91.svcinfo
  • 参考.cs
  • 参考.svcmap
  • 我的服务.disco
  • 我的服务.wsdl

当我查看 wsdl 时,它看起来几乎就像是重新排序的字段。但我不明白这是怎么可能的。

这是我的网络服务的标题信息

任何人都知道为什么每次重建都会发生这种情况?

编辑:这是一个例子。

例如,这是一个随机更改,这个类没有更改,只是重新编译:

前:

后:

0 投票
1 回答
3274 浏览

wcf - WCF 或 WSE 编辑安全标头

我一直在尝试使用 WCF 或 WSE 更改肥皂安全元素。

  1. WCF:实现一个 messageinspector 并在 Beforerequestsent 中添加您的自定义代码。在后面的代码中设置了以下自定义绑定后,我在 ref System.ServiceModel.Channels.Message 请求中看不到安全元素。有一个信封和标题,正文但标题中缺少安全元素。

    这就是 ref 变量请求的样子

    尽管提琴手显示了一个传出的安全标头,但我无法访问 Before request sent 方法中的 Security 元素

  2. WSE:他们建议使用肥皂过滤器并覆盖一些方法我在代码中包含所有标记

    现在创建了一个自定义策略,策略断言,我将覆盖以下内容

    但即使在这里,信封也没有安全元素。

请建议。为了编辑安全标头,要覆盖哪些方法

已编辑:现在出现的请求

需要出现什么

编辑以显示 Complete Soap 请求以显示签名和加密详细信息

0 投票
0 回答
277 浏览

wcf - WCF 使用旧版 Web 服务

我在使用 WCF 使用旧版 Web 服务时遇到问题。我解决了一个问题,即 Web 服务使用不同的签名和加密密钥这一事实。但是当我进行网络服务调用时,我得到一个版本未匹配响应。当我查看我在 WSE 中制作的信封时,我注意到肥皂的版本与 WCF 制作的不同。

我的 WSE 信封标题如下所示:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">

而 WCF 封装的标头

我添加了一些代码来尝试更改肥皂信封的名称空间和前缀。

下面是prefixreplace.cs:

}

下面是 ReplacePrefixMessageEncodingBindingElement:

0 投票
1 回答
994 浏览

web-services - 无法将 System.Web.Services.Protocols.SoapHttpClientProtocol 覆盖为 Microsoft.Web.Services2.WebServicesClientProtocol

我的网站(3.5 版)具有对在 App_WebReference 文件夹中创建的外部 Web 服务的 Web 引用。此文件夹没有 Reference.cs(仅 .wsdl 和 .discomap 可用)。我可以在 ASP.NET 临时文件夹中的 dll 中找到代理类,该文件夹位于:C:\Users\Amit\AppData\Local\Temp\2\Temporary ASP.NET Files\core_webservices\2e1ad39b_shadow\16784daa\249954494\30312779\ App_WebReferences.c1uisrry.dll

这是类声明: public class Service1 : SoapHttpClientProtocol

我无法编辑它,因为它显示在 DLL 中。

我需要将继承覆盖如下,以便创建 WSE 2.0 支持的 SOAP 消息:

公共类 Service1:Microsoft.Web.Services2.WebServicesClientProtocol

请帮忙。谢谢!

我正在使用 VS Studio 2010 + WSE 2.0

0 投票
1 回答
1148 浏览

web-services - 开发 Web 服务 - 带有密码摘要认证的 UsernameToken 标头

我们正在尝试通过具有客户端证书和消息身份验证的 ABC 服务器托管服务。
客户端将提供服务需要理解的 WSSE UsernameToken Security 标头,并且必须进行适当的身份验证。

有两个选项 -<br> 1. WCF 服务 - 但它不支持开箱即用的摘要密码,因此我们可能需要找到使用自定义绑定或其他一些调整的方法。
2. 使用 WSE 3.0 的 Web 服务 - 我们需要了解如何开发 WSE 3.0 服务并利用它来处理以下安全标头。
WSE 3.0 的先决条件是什么,需要哪些工具和库?

任何帮助将不胜感激。

请求中预计会出现以下肥皂标题。

谢谢你,

0 投票
1 回答
1512 浏览

c# - 将 WSE 客户端迁移到 WCF - 如何替换 SecurityPolicyAssertion 和 UsernameToken?

我有一个用 Java 实现的 Web 服务,当前由 WSE 3.0 客户端调用,我想从 WSE 迁移到 WCF。使用标准工具,我创建了一个可以调用 Web 服务的客户端,但它返回一个 SoapException 并显示“缺少必需的参数值”消息。Web 服务使用 HTTPS 并要求提供用户名和密码。在现有的 WSE 客户端代码中,子类化SecurityPolicyAssertionSendSecurityFilter支持的凭据区域,如下所示:

这些类应用于客户端中生成的代理类,如下所示:

我发现如果我编辑 WSE 客户端代码以删除行objListSvc.SetPolicy(objPolicy),我会收到相同的错误消息“缺少必需的参数值”。

与上面配置此 Web 服务的用户名和密码的 WSE 代码匹配的等效 WCF 配置/代码是什么?正在使用的 WCF 配置是生成的默认配置:

提前致谢