【发布时间】:2015-10-24 12:46:55
【问题描述】:
我正在为 MVC5 Web API 2、ASP.NET 应用程序使用无状态设计。
用户角色由管理员通过选择权限来创建。 应用程序中的每个用户都被分配了一个自定义用户角色,一个角色可以在用户之间共享。
Razor 视图的结构基于用户角色中的权限。 根据用户角色的权限,可以使用 MVC 和 API 控制器。
对于服务器的每个请求,都需要处理用户权限。 我可以想到 2 种方法来做到这一点:
- 将用户角色的 ID 存储在角色声明中,并执行数据库查找以检索每个页面加载/请求的权限。
- 在用户登录时,检索分配给用户角色的所有权限,将它们序列化为 JSON 并将它们存储在身份验证声明中。然后在每次页面加载/请求时,将 JSON 反序列化回对象并处理权限。
以下哪个是更好的选择?
选项 1 比选项 2 慢很多。 将权限存储在 cookie 中是否存在安全风险? 有没有更好或替代的解决方案,既快速又安全。
【问题讨论】:
标签: c# asp.net cookies owin claims