我需要使用用户名 token 来验证 Primavera P6 Web 服务。我在 VS2010 中创建了控制台应用程序并添加了一个服务引用:
http://localhost:8206/p6ws/services/ExportService?wsdl
所以此刻我有一个代理类,我可以这样写:
var exportService = new ExportPortTypeClient();
var project = new ExportProject { ProjectObjectId = 1000 };
exportService.ExportProject(project);
当我尝试调用 ExportProject() 时,由于身份验证失败出现异常。
有没有人有使用用户名 token 进行身份验证的示例代码?
最佳答案
确保您使用这样的自定义绑定(bind)创建客户端:
var securityElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
securityElement.AllowInsecureTransport = true; //in case you don't use SSL
securityElement.EnableUnsecuredResponse = true; //in case you don't use SSL
var encodingElement = new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8);
var transportElement = new HttpTransportBindingElement();
var binding = new CustomBinding(securityElement, encodingElement, transportElement);
EndpointAddress endpointAddress = new EndpointAddress("<your endpoint to service goes here>");
var exportService = new ExportPortTypeClient(binding, endpointAddress);
var project = new ExportProject { ProjectObjectId = 1000 };
exportService.ExportProject(project);
关于c# - 如何在 C# 中使用用户名 token 对 Primavera P6 Web 服务进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927068/