问题标签 [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.
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 请求:
asp.net - 如何让 wcf 服务使用我的 asp.net 请求/响应过滤器?
我有一个使用微软 WSE 库的旧肥皂网络服务。现在我们的目标 .net 框架和操作系统不支持它。我已将服务转换为在服务器上使用 wcf,但客户端仍将使用旧的 Web 服务代理。我目前遇到的问题是客户端压缩http请求以节省我们的带宽。在 asp.net 应用程序中,我有一个 httpmodual,它根据请求标头的内容编码检测客户端发送是否使用 gzip/deflate。现在服务是 wcf,它不会从 asp.net 请求流中读取,并且解压缩不起作用。不压缩请求的客户端当前可以工作。如何使 wcf 服务与 asp.net 管道集成?
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 中有什么东西坏了吗?
c# - 带有 SAML 的 wsse 安全标头
我需要使用服务提供商公开的 Web 服务。我从他们那里得到了 WSDL 文件。在 SOAP 请求标头中,我必须添加带有 SAML 断言的 wsse:Security 标头。
请查看下面的 wsse:Security 标头。我进行了很多搜索并尝试使用 WSE 3.0、WIF 和 WCF。帮助我进一步移动花了大约 15 天,我的时间不多了。
我不需要密码。如果你给我线索就足够了。
谢谢和问候, P.Ponkarthik
wcf - 服务引用无法正确反序列化并将 null 放入字段(asp.net 到 asp.net)
所以我在我的 VS2010 项目中的服务参考有一个奇怪的问题,我真的无法弄清楚。
每当我重建附加服务引用的soap服务时,我都无法再反序列化来自其中一种方法的数据。所有其他方法都有效,但特别是其中一种方法只是填充了空值/默认值,而不是正确的值。我可以确认 Web 服务仍在返回良好的数据并且看起来格式正确。一旦我更新了服务引用,它就会再次工作,直到我重建。
当我去查看结构的差异时,我发现以下文件现在有所不同:
- 配置.svcinfo
- 配置91.svcinfo
- 参考.cs
- 参考.svcmap
- 我的服务.disco
- 我的服务.wsdl
当我查看 wsdl 时,它看起来几乎就像是重新排序的字段。但我不明白这是怎么可能的。
这是我的网络服务的标题信息
任何人都知道为什么每次重建都会发生这种情况?
编辑:这是一个例子。
例如,这是一个随机更改,这个类没有更改,只是重新编译:
前:
后:
wcf - WCF 或 WSE 编辑安全标头
我一直在尝试使用 WCF 或 WSE 更改肥皂安全元素。
WCF:实现一个 messageinspector 并在 Beforerequestsent 中添加您的自定义代码。在后面的代码中设置了以下自定义绑定后,我在 ref System.ServiceModel.Channels.Message 请求中看不到安全元素。有一个信封和标题,正文但标题中缺少安全元素。
这就是 ref 变量请求的样子
尽管提琴手显示了一个传出的安全标头,但我无法访问 Before request sent 方法中的 Security 元素
WSE:他们建议使用肥皂过滤器并覆盖一些方法我在代码中包含所有标记
现在创建了一个自定义策略,策略断言,我将覆盖以下内容
但即使在这里,信封也没有安全元素。
请建议。为了编辑安全标头,要覆盖哪些方法
已编辑:现在出现的请求
需要出现什么
编辑以显示 Complete Soap 请求以显示签名和加密详细信息
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:
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
web-services - 开发 Web 服务 - 带有密码摘要认证的 UsernameToken 标头
我们正在尝试通过具有客户端证书和消息身份验证的 ABC 服务器托管服务。
客户端将提供服务需要理解的 WSSE UsernameToken Security 标头,并且必须进行适当的身份验证。
有两个选项 -<br> 1. WCF 服务 - 但它不支持开箱即用的摘要密码,因此我们可能需要找到使用自定义绑定或其他一些调整的方法。
2. 使用 WSE 3.0 的 Web 服务 - 我们需要了解如何开发 WSE 3.0 服务并利用它来处理以下安全标头。
WSE 3.0 的先决条件是什么,需要哪些工具和库?
任何帮助将不胜感激。
请求中预计会出现以下肥皂标题。
谢谢你,
c# - 将 WSE 客户端迁移到 WCF - 如何替换 SecurityPolicyAssertion 和 UsernameToken?
我有一个用 Java 实现的 Web 服务,当前由 WSE 3.0 客户端调用,我想从 WSE 迁移到 WCF。使用标准工具,我创建了一个可以调用 Web 服务的客户端,但它返回一个 SoapException 并显示“缺少必需的参数值”消息。Web 服务使用 HTTPS 并要求提供用户名和密码。在现有的 WSE 客户端代码中,子类化SecurityPolicyAssertion和SendSecurityFilter支持的凭据区域,如下所示:
这些类应用于客户端中生成的代理类,如下所示:
我发现如果我编辑 WSE 客户端代码以删除行objListSvc.SetPolicy(objPolicy),我会收到相同的错误消息“缺少必需的参数值”。
与上面配置此 Web 服务的用户名和密码的 WSE 代码匹配的等效 WCF 配置/代码是什么?正在使用的 WCF 配置是生成的默认配置:
提前致谢