升级到ServiceStack 4后,如何将自定义UserSession保存到缓存中?

时间:2014-02-25 11:28:41

标签: servicestack servicestack.redis

我曾经能够将我的客户AuthSession保存到缓存中,但由于升级它只保存了IAuthSession接口上的属性,而不是我的类CustomUserSession。

代码在这里运行:

public class AcmeUserSession : ServiceStack.AuthUserSession, IAcmeUserSession
{

    public override void OnAuthenticated(IServiceBase authService, IAuthSession session,   IAuthTokens tokens, Dictionary<string, string> authInfo)
    {

     //code to update session object

     authService.SaveSession(this);     //*****HERE*****

    }
}

这段代码没有改变,但现在当我在保存的对象中查看redis时,它只有来自IAuthSession的属性,而不是以前的AcmeUserSession的自定义属性。

请帮忙!

谢谢,

理查德

1 个答案:

答案 0 :(得分:1)

Mythz完美地回答了这个问题。我直接引用他的话:

  

因为AuthUserSession是DataContract,现在是属性   在v4中继承,你还需要用[DataMember]标记每个成员,   e.g:

public class CustomUserSession : AuthUserSession
{
    [DataMember]
    public string Hello { get; set; }
}