我曾经能够将我的客户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的自定义属性。
请帮忙!
谢谢,
理查德
答案 0 :(得分:1)
Mythz完美地回答了这个问题。我直接引用他的话:
因为AuthUserSession是DataContract,现在是属性 在v4中继承,你还需要用[DataMember]标记每个成员, e.g:
public class CustomUserSession : AuthUserSession { [DataMember] public string Hello { get; set; } }