使用 .Net 3.5 和 VS 2008 使用安全的 WSE2.0 / .Net 1.1 WebService
请原谅这个问题中的任何错误。我对安全 Web 服务或 WCF 不太熟悉。
我需要使用使用 WSE 2.0 和 .Net 1.1 的 Web 服务。
该服务通过两种方式得到保护。添加到标头的 X509Certificate 和 BinarySecurityToken。
我有关于如何在使用 Visual Studio 2003 和 WSE 2.0 时使用此 Web 服务的代码示例。
我的主要问题是我应该尝试使用“Web 引用”还是“服务引用”来使用此 Web 服务?
我的代码示例使用二进制 Microsoft.Web.Services2。我正在寻找允许我执行相同功能的等效类/方法。
我要替换的两行关键代码是:
webService.ClientCertificates.Add(X509Certificate.CreateFromFile(fileName));
以及
SoapContext context = webService.RequestSoapContext;
context.Security.Tokens.Add(binarySecurityToken);
任何人都可以向我提供一些关于我应该查看哪些类的信息或任何有助于我进一步理解这一点的有用文章吗?
编辑:除此之外,我正在努力寻找替代方法的方法是:
webService.RequestSoapContext;
我在创建安全令牌时找到了各种替代类/方法,但是,如果没有 RequestSoapContext 我不知道在哪里添加它们。
Please forgive any mistakes in this question. I am not overly familiar with secure web services or WCF.
I need to consume a web service that uses WSE 2.0 and .Net 1.1.
The service is secured in two ways. An X509Certificate and a BinarySecurityToken added to the header.
I have code samples as to how to consume this Web Service when using Visual Studio 2003 and WSE 2.0.
My main question is should I be attempting to consume this Web Service using a "Web Reference" or a "Service Reference"?
The code samples I have use the binary Microsoft.Web.Services2. I am looking for the equivalent classes / methods that will allow me to perform the same functionality.
The two key lines of code I'm looking to replace are:
webService.ClientCertificates.Add(X509Certificate.CreateFromFile(fileName));
and
SoapContext context = webService.RequestSoapContext;
context.Security.Tokens.Add(binarySecurityToken);
Can anyone provide me some information as to which classes I should be looking at or any helpful articles that will help me understand this further?
EDIT: To add to this, the method I am struggling to find an alternative to is:
webService.RequestSoapContext;
I have found various alternative classes / methods in creating the security tokens however, without the RequestSoapContext I do not know where to add them.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您想为客户端使用 WCF,则必须使用添加服务引用。如果您使用添加 Web 引用仅适用于 ASMX 服务。我猜想 VS 2008 不支持 WSE 扩展,因此您无法从 UI 创建 WSE 代理,但如果安装它们,您将拥有一些命令行工具,并且仍然可以在 .NET 3.5 项目中使用它。
如果您需要讨论 WSE 服务的等效 WCF 绑定,您将必须提供更多信息 - 应该有一些配置(在代码或配置中)为 WSE 服务设置一些策略。
您还可以查看这两篇与 WCF 相关的文章<-> WSE 3.0 互操作性:迁移 WSE 3.0、与 WSE 3.0 的互操作性。
If you want to use WCF for your client you have to use Add service reference. If you use Add web reference only works for ASMX services. I guess WSE extensions are not supported in VS 2008 so you can't create WSE proxy from UI but if you install them you will have some command line tools and you will still be able to use it in .NET 3.5 project.
If you need to discuss equivalent WCF binding for WSE service you will have to provide more information - there should be some configuration (in code or config) setting some policy for WSE service.
You can also check these two articles related to WCF <-> WSE 3.0 interoperatbility: Migrating WSE 3.0, Interoperability with WSE 3.0.