1

我曾经能够将我的客户 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 的自定义属性。

请帮忙!

谢谢,

理查德

4

1 回答 1

1

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

因为 AuthUserSession 是一个 DataContract 并且现在在 v4 中继承了属性,所以您还需要用 [DataMember] 标记每个成员,例如:

public class CustomUserSession : AuthUserSession
{
    [DataMember]
    public string Hello { get; set; }
}
于 2014-02-27T12:04:30.870 回答