问题:在我看来,查看会话的正常和最佳方式是:每个设备一个会话,每个用户。
因此,您可以在每台设备上启用一个会话,这意味着每个 Web 浏览器、每部手机、平板电脑等都有一个会话。例如,您不应被允许为同一部手机拥有两个或多个有效会话。
当我实现自己的会话缓存和身份验证结构时,我按照上面的方式实现了它,因为我的应用程序正在发送每个设备唯一的“DeviceUUID”。这样,我可以检测到“此 DeviceUUID 和用户已经存在有效会话”并采取相应措施(用新会话替换旧会话)。
现在,当我评估 ServiceStack 时,我想要一些关于如何使用 IAuthSession 等来执行此操作的输入。
目前,我有自定义代码来对后端进行身份验证,因此我得到了一个 IAuthSession ,其中填充了一些数据,例如:
session.FirstName = alrReply.Actor.Firstname;
session.IsAuthenticated = true;
session.UserAuthName = alrReply.Actor.Username;
session.UserAuthId = alrReply.AuthToken;
session.Roles.Add("alfaconnect");
base.Request.SaveSession(session);
我也可以访问“DeviceUUID”,但我不确定如何确保 ServiceStack 的行为如上所述。可行吗?
我在 SO 中阅读过类似的帖子,但要么他们没有解决相同的问题,要么我不明白答案。