|
|
1
11
我建议存储ID而不是对象。缺点是,每次想要获取该用户的信息时都必须访问数据库。但是,除非页面中每毫秒都有计数,否则性能不应该是问题。以下是两个优点:
在大多数情况下,这些问题不会成为问题,任何一种方法都可以。 |
|
|
2
6
为了安全起见,我将生成一个会话ID(guid或加密安全的rng),并拥有一个表,该表只将会话ID映射到用户ID。然后,您只需将会话ID存储在他们的cookie中,并让它作为用户ID的代理。
有了这个,没有人可以通过猜测他们的ID来模仿另一个用户。它还允许您限制用户的会话,因此他们必须每隔一段时间登录一次(通常是两周)。如果您想存储关于他们会话的其他数据,您可以将其添加到这个表中。 |
|
|
3
3
请记住,如果您在会话中存储了用户的所有属性(这扩展到了权限),那么对用户所做的任何更改在再次登录之前都不会生效。 就我个人而言,我会将姓名和身份证存储起来,以便快速参考,必要时还可以提取其余的身份证。 |
|
|
4
2
在大多数情况下,存储ID是最佳实践。其中一个重要原因是可伸缩性。如果您存储用户对象(或数据库中的任何实体,而不仅仅是其ID),那么在扩展为您的站点提供服务的服务器数量时会遇到问题。更多信息,谷歌的“无共享架构”。 |
|
5
1
我认为这取决于你使用的平台。如果您使用的是ASP.NET,那么我肯定会看看 FormsAuthentication 类和所有内置(和可扩展)功能,可用于存储登录的用户设置。 |
|
6
1
我将存储用户ID和会话ID的哈希值,然后将其匹配到数据库的会话表中。这样就很难欺骗会话数据。我可以再检查一下IP吗? 不确定我是否希望依赖存储在会话变量中的用户ID,并相信它是该用户,因为它可以很容易地进行更改,并作为另一个成员获得访问权。 |
|
|
7
0
我通常将用户存储在会话中。在进行更改后,可以用新副本替换会话中的对象,从而解决登录前无法更改的问题。 |
|
|
8
0
我们的用户对象相当轻,所以我们选择将其存储在会话变量中。不确定这是否是最有效的,但到目前为止它工作得很好。 |
|
|
A. Shawkat · 获取请求不起作用 8 年前 |
|
|
Yura · 无法链接引导。min.css和动态web app 8 年前 |
|
|
jasonharper · 无互联网连接的WiFi连接设备的最佳实践 8 年前 |
|
|
Thanh Dong · 在spring boot web应用程序中运行jar文件时,创建名为“ConfigurationPropertiesBindingPostProcessor”的bean时出错 8 年前 |
|
|
Karim Sawma · react web app中缺少滚动条 8 年前 |
|
|
Nathan · Flask API回调侦听器 8 年前 |
|
|
David Artmann · Vaadin网格日期渲染器不适用 8 年前 |
|
|
Hayden · 如何防止计数器的增量超过元素的高度? 8 年前 |