c# - 如何在 C# 中使用用户名 token 对 Primavera P6 Web 服务进行身份验证?

标签 c# wcf primavera

我需要使用用户名 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/

相关文章:

c# - 未处理的异常。 System.ArgumentNullException : Value cannot be null.(参数 'path1' )在 System.IO.Path.Combine(字符串路径1,字符串路径2)

c# - 显示每个请求的所有 linq sql 查询

c# - 将单选按钮绑定(bind)到特定对象列表中的枚举

c# - 小巧玲珑.NET : problems with struct parameterized queries

wcf - 为 iis 托管服务命名 WCF 端点的最佳实践?

javascript - 使用 Javascript 解析来自 Oracle Primavera 的日历 blob

java - Primavera Integration API 无法创建用户许可证

c# - xsd :decimal in WSDL 的限制

.net - 如何使用 .Net 4 进行 WCF 非 HTTP 激活?