加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 处理可伸缩性的会话

发布时间:2020-12-15 05:40:57 所属栏目:百科 来源:网络整理
导读:我目前正在创建一个非常类似于数据库的站点,就像Stack Overflow一样.我的问题是如何处理将跨越多个服务器的会话(我计划使用AWS服务器进行自动扩展). 目前,我认为不应将表单身份验证用于可伸缩性和速度目的.相反,我会在数据库中有一个名为sessions的表,它存储
我目前正在创建一个非常类似于数据库的站点,就像Stack Overflow一样.我的问题是如何处理将跨越多个服务器的会话(我计划使用AWS服务器进行自动扩展).

目前,我认为不应将表单身份验证用于可伸缩性和速度目的.相反,我会在数据库中有一个名为sessions的表,它存储以下信息:SessionID,UserID,ExpDate,CreateDate,IP,Status(‘LogedIn’,’LogedOut’,’Expired’).

我最关心的是从cookie的角度来看安全性,而且当我有很多服务器运行时没有经验可以看到瓶颈情况.

请告诉我你的见解.我也想知道其他人和Stack Overflow是如何处理这种困境的.

仅供参考:出于同样的原因,我使用PetaPoco而不是实体框架,因为我能够通过这样做来减少大约600毫秒.

谢谢您的帮助!

解决方法

我不知道使用表单身份验证有任何可伸缩性问题.实质上,它将授权令牌加密为cookie,并在每次请求时将cookie呈现给服务器.使用cookie而不是进程内会话确实允许可伸缩性,因为它不依赖于任何特定的服务器.

加密使用存储在服务器上的machineKey值,因此破解加密需要获取machineKey.

一般来说,我尽量不实施自己的授权,而是尝试坚持使用已经过测试的开箱即用的解决方案.

您使用会话存储的方法仍然需要使用cookie来存储某种指向会话存储的指针.根据您的实现情况,可能很容易猜到这些信息并轻易冒充其他人.

编辑:

由于您在AWS上运行,我建议您利用ElastiCache来减少数据库命中数.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读