WCF模拟Salesforce.com登录服务

WCF模拟Salesforce.com登录服务

问题描述:

我将如何完成Salesforce.com用于使用WCF登录的功能?我想有一个身份验证服务,返回一个正确的登录标记。然后,每组服务调用都会将令牌传回。我不想在每个方法调用上传递令牌。WCF模拟Salesforce.com登录服务

引发我的是会话头是如何绑定的一部分。

我也在寻找为什么这是或不是一个好主意。我认为它很干净简单。

谢谢!

// Create service object 

    binding = new SforceService(); 
    // Invoke the login call and save results in LoginResult 

    LoginResult lr = binding.login("username","password"); 
    if (!lr.passwordExpired) { 
    // Reset the SOAP endpoint to the returned server URL 

    binding.Url = lr.serverUrl; 
    // Create a new session header object 

    // Add the session ID returned from the login 

    binding.SessionHeaderValue = new SessionHeader(); 
    binding.SessionHeaderValue.sessionId = lr.sessionId; 
    GetUserInfoResult userInfo = lr.userInfo; 
    } else { 
    Console.WriteLine("Your password is expired."); 
    } 
+0

这听起来像你正在寻找添加一个自定义的SOAP标头......我已经使用System.Web.Services.WebService在.NET中完成了这项工作,如果没有办法做到这一点,会感到震惊在WCF中。这个问题看起来相似,并有一个公认的回应:http://*.com/questions/321764/wcf-and-custom-soap-authentication – dana 2010-06-12 04:16:49

我相信你正在寻找充分利用Windows Identity Foundation和它的安全性令牌服务/ STS模式。

+0

克里斯,我不关心提供令牌尽可能多,因为我试图使用它。我不明白如何将其附加到像SalesForce那样的绑定或如何在服务中将其拉出。 – 2010-06-11 18:31:19

+0

如果您使用WIF,您将拥有所有这些功能,如果您希望自己实现所有功能,则只需在会话Cookie中传递令牌,然后在每个请求上验证Cookie即可。 – 2010-06-11 18:50:17

+0

谢谢克里斯,我希望能在没有饼干的情况下做到这一点。如果使用该服务的客户端不是.Net,会发生什么? – 2010-06-11 20:42:57