登录后ServiceStack IAuthSession为空白

时间:2013-04-02 05:29:59

标签: c# servicestack

因此,我使用auth功能在localhost/auth/credential上运行调试,并使用user=admin, pass=pass, rememberMe=true成功登录。到目前为止,我收到了Json的回复UserName=admin, SessionId=1

然后我有一个SessionService来检查我当前的会话:

[Route("user/session")]
public class Session {
}
public class SessionResponse { 
    public ResponseStatus ResponseStatus { get; set; }
    public string UserName { get; set; }
    public string SessionId { get; set; }
}
class SessionService : Service {
    public dynamic Get(Session req) {
        IAuthSession session = this.GetSession();
        return new SessionResponse() {
            SessionId = session.Id,
            UserName = session.UserName,
        };
    }
}

但是当我去参观时:

localhost/user/session

我得到 SessionId = K16UMnr2eBXiIFUwAod,UserName = null 我期望UserName = admin。我坚持了几个小时,无法弄清楚我做错了什么。请帮帮忙?

更新=========================================== ===================

当我登录时,浏览器收到了:

X-UAId=1 

然后浏览器发送:

ss-pid=zV7OOe2sP8hwlo8rR0EZ
ss-id=K16UMnr2eBXiIFUwAod
X-UAId=1

如图所示:

网址:localhost / auth / credentials?format = json

enter image description here

然后我访问会话服务:

网址:localhost / user / session

enter image description here

正如您所看到的,我正在将ss-id作为SessionId。我使用admin登录, UserName = admin 是预期的,但我得到 UserName = null 。为什么?

enter image description here

1 个答案:

答案 0 :(得分:3)

修正了!!

感谢Eli Gassert。根据他的提示,我怀疑 MemcachedClient 设置不正确。所以我将其切换为简单的 MemoryCacheClient

现在一切都能正常运作。因为MemcachedClient不记得任何东西。所以根本没有会议。