2

根据http://msdn.microsoft.com/en-us/library/system.servicemodel.wshttpbinding.security.aspx,.NET Framework 4.5 的 WSHttpBinding类有一个 publicSecurity类型的属性System.ServiceModel.WSHttpSecurity

问题是WSHttpBinding缺少这个属性。如果我使用调试器检查该类型的对象,它不会显示这样的属性:

调试检查器显示没有安全属性

此外,Intellisense 不显示任何Security属性:

在此处输入图像描述

重要提示:请注意,我正在Security使用对象初始值设定项设置属性!Visual Stuido 也可以!?

正确的方式为 SOAP webservice 传达 WSSE Usernametoken,@Chris Marisic 显示了他修改此对象的位置。

此应用程序正在为 .NET Framework 4.5 编译。

是什么赋予了?

4

1 回答 1

2

问题是is of type的Binding属性,它是一个泛型抽象类,是所有 Binding 类型的父类型。所以你看到了这种类型的智能感知。ClientBase.EndpointSystem.ServiceModel.Channels.Binding

您需要在WSHttpBinding分配之前设置实际实例的属性,就像您现在使用对象初始化语法所做的那样。另一种方法是首先将其分配给局部变量:

var binding = new WSHttpBinding(SecurityMode....);
binding.Security = new WSHttpSecurity();
// etc.
service.Endpoint.Binding = binding;
于 2013-01-14T21:46:44.293 回答