在客户端和wcf服务之间传递SessionSecurityToken

时间:2013-07-23 09:31:47

标签: asp.net cookies forms-authentication token wif

我在使用federatedauthentication在客户端和wcf服务应用程序之间进行通信时遇到问题。

在我的客户端应用程序(带有Forms身份验证的ASP.NET MVC)上,我将用户数据传递给声明,并构建一个SessionSecurityToken:

  SessionSecurityToken sessionSecurityToken = new
 SessionSecurityToken(transformedPrincipal,
 TimeSpan.FromMinutes(tokenLifeTime)); 
 sessionSecurityToken.IsReferenceMode = true;
 FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionSecurityToken);

tokenLifeTime等于25分钟。

在我的服务上,我想阅读cookie并获取存储在声明中的用户数据。但是,当我在我的服务上运行以下代码时:

 SessionSecurityToken token;
 FederatedAuthentication.SessionAuthenticationModule.TryReadSessionTokenFromCookie(out token);

令牌为空。

更新

我注意到如果我只是在客户端应用程序中创建服务,则会毫无问题地读取令牌。我也可以设置Httpcontext.Current.user,它工作正常。但是我确实希望通过服务引用来使用服务,在这种情况下,HttpContext.Current.User都是空的(但不是null!),并且上面没有读取cookie。

0 个答案:

没有答案