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.");
}
我相信你正在寻找充分利用Windows Identity Foundation和它的安全性令牌服务/ STS模式。
克里斯,我不关心提供令牌尽可能多,因为我试图使用它。我不明白如何将其附加到像SalesForce那样的绑定或如何在服务中将其拉出。 – 2010-06-11 18:31:19
如果您使用WIF,您将拥有所有这些功能,如果您希望自己实现所有功能,则只需在会话Cookie中传递令牌,然后在每个请求上验证Cookie即可。 – 2010-06-11 18:50:17
谢谢克里斯,我希望能在没有饼干的情况下做到这一点。如果使用该服务的客户端不是.Net,会发生什么? – 2010-06-11 20:42:57
这听起来像你正在寻找添加一个自定义的SOAP标头......我已经使用System.Web.Services.WebService在.NET中完成了这项工作,如果没有办法做到这一点,会感到震惊在WCF中。这个问题看起来相似,并有一个公认的回应:http://*.com/questions/321764/wcf-and-custom-soap-authentication – dana 2010-06-12 04:16:49