ServiceStack cookie值与Redis缓存中的会话ID不同

时间:2016-02-01 07:30:14

标签: session cookies servicestack

我已使用CustomUserSession配置了AuthFeature,并使用RedisCache作为用户身份验证库。然后我使用C#JSON服务客户端来验证服务,验证正常但缓存中的会话ID存储与cookie值不同。

Cookie:ss-id =>的 I0ZIuzLijch3IY9Tut0z
缓存:urn:iauthsession: brSXBQPjmIB6Srv6EPCv
请帮忙!

更新...... 下面的代码使用JsonServiceClient:
using (var client = new JsonServiceClient("https://api.futabus.vn/api")) { var lRes = client.Post("/auth/credentials", new { UserName = user.UserName, Password = user.Password }); }

但是当我直接发布到https://api.futabus.vn/api/auth/credentials时,cookie值与响应对象和缓存中的会话ID相同。

2 个答案:

答案 0 :(得分:0)

这包含足够的信息来识别问题,您至少应该显示用于发出请求的HTTP标头和代码。

但会话密钥是从sessionId派生的,如果它没有使用ss-id,那么您可能会使用RememberMe=true进行身份验证,在这种情况下,ServiceStack会存储User Session against the ss-pid Cookie instead 。如果不是,那么请仔细检查HTTP标头,因为您认为正在发送的Cookie可能不是正在发送的Cookie。

答案 1 :(得分:0)

我有3个申请:
1.主要网站:example.com
2.用户网站:id.example.com
3. API:api.example.com。所有cookie都限制在第一个(1)网站(根域)
所有网站都使用ServiceStack Framework 4.0编写。

当我使用JsonServiceClient从第二个(2)调用身份验证到api.example.com时,然后:
cookie存储在第一个(1)和cookie中,一旦呼叫认证不同,我就会得到。
我认为第一个(1)中的cookie存储已加密。 第一个(1)使用表单身份验证和web.config中的机器密钥设置 其他人有想法吗?