MVC3中用户权限/会话变量的最佳实践

时间:2011-09-09 13:45:49

标签: asp.net asp.net-mvc-3 authentication session-variables

Hi Stack社区成员,

我正在使用MVC3开发一个应用程序,其中用户具有特定于部门的CRUD权限。换句话说,所有用户都可以查看所有部门的数据,但只有某些用户可以对任何一个部门的数据进行更改。用户部门权限数据保存在数据库的连接表中。

我在这种情况下(在PHP中)通常做的是在登录时创建一个Session变量(一个数组),该变量填充了允许用户编辑的部门的id。当用户然后访问编辑功能时,下拉列表仅填充这些特定部门。我还填充了一些常用的会话变量,如用户名和当前时间段(业务季)的ID。

这种方法是不是MVC3的好方法,还是更好的替代方法?虽然我认为我将使用表单身份验证和一些特定角色(员工,管理员等),但这些类型的角色过于宽泛,无法针对逐个部门的访问,我不确定MVC3有一个开箱即用的方法,比我计划做的更好。

感谢您的指导!

2 个答案:

答案 0 :(得分:1)

我正在使用表单身份验证,添加特定角色,并在需要时将它们组合在一起。我不介意具体的角色,因为它们可以组合我想要的。对于更一般的行动,我仍然可以发挥广泛的作用。

答案 1 :(得分:0)

我在会话中存储类似的数据(UserId,DepartmentId等),因为它不会因用户而改变,而且是少量数据。我认为会话状态对你来说也是一个很好的方法。