5

我在使用联合身份验证的客户端和 wcf 服务应用程序之间进行通信时遇到问题。

在我的客户端应用程序(带有表单身份验证的 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 没有像上面写的那样被读取。

4

0 回答 0