ServiceStack直接访问会话

时间:2014-05-29 13:48:58

标签: session servicestack

我无法直接操作会话。

使用来自源代码的一些代码和来自Demis的提示,我在单元测试客户端中放置了一些内容来授权用户,然后恢复会话。

我从服务获得的AuthResponse的SessionId为533,导致构造的urn为“urn:iauthsession:533”,而Redis缓存中的urn为“urn:iauthsession:sbQBLwb1WpRj8DqQ7EdL”,所以显然,在运行代码中传递给urn构建器的东西不仅仅是会话ID(或者使用的重载不是我认为的那样)。

以下是我们在测试基类中使用的代码,用于尝试从auth调用中恢复会话:

var client = new JsonServiceClient(ServiceTestAppHost.BaseUrl)
    {
        UserName = userName,
        Password = password,
        AlwaysSendBasicAuthHeader = true
    };

var response = client.Post<AuthResponse>("/auth/basic", new Auth() { UserName = userName, Password = password, RememberMe = true });

var sessionKey = IdUtils.CreateUrn<IAuthSession>(response.SessionId);

var session = _appHost.TryResolve<ICacheClient>().Get<SsoUserSession>(sessionKey);

知道为什么构造的urn不匹配?

1 个答案:

答案 0 :(得分:0)

这应该是fixed with this commit,该版本在v4.0.22中可用now available on MyGet