在哪里保存整个网站访问的用户角色和权限?

时间:2014-02-22 07:45:55

标签: asp.net asp.net-mvc asp.net-mvc-4 session cookies

我正在处理我网站中的用户角色和权限。我想询问何时获取用户角色和权限,这是存储用户角色和权限会话或Cookie的最佳位置。在我的网站上有大约3000到5000的用户数量。请指导我。谢谢。

2 个答案:

答案 0 :(得分:1)

用户角色基本上存储在数据库中。架构最常见的例子:

User (UserID, Login, RoleID) -> Role (RoleID, RoleName) - one role for user

User (UserID, Login) -> UserRole (UserID, RoleID) <- Role (RoleID, Name) - many roles for user

当用户登录时,您可以在会话中存储角色信息,或者从必要的数据库中请求它们

答案 1 :(得分:1)

用户的持久性存储角色等信息应该是数据库(SQL或NoSQL,任何工作都可以)。但是为了通过不为每个页面请求提示登录页面来提供无缝体验,您应该使用Session对象。

然后是cookie,所以不是在客户端浏览器上呈现页面,那么如何在这些请求之间跟踪用户,为此使用Cookie。所以Cookie + Session + Database会给你正确的体验。您可以使用CookieLess会话,其中会话标识符将在URL中从客户端传递到服务器,这有时不适合使用用户友好的URL。

因此,在使用Session时要记住的事情是考虑WebFarm场景,在这些情况下,您需要使用Sticky Session或Sessions,它们在中央存储中再次像数据库一样维护。出于安全原因,不需要在cookie中包含敏感信息,如果包含敏感信息,则需要进行适当的加密。