没有数据库的ASP.NET MVC角色(没有角色提供者)

时间:2009-08-20 07:49:28

标签: asp.net-mvc configuration roles

我有一个超级简单的ASP.NET MVC应用程序,它使用RpxNow(OpenID)来允许用户登录。我现在想让用户编辑自己的帐户并提供管理员权限来编辑任何人的帐户。

我有两个单独的“编辑帐户”视图:

  • 〜/帐户/编辑/
  • 〜/帐户/编辑/ 1

第一个根据登录用户加载帐户详细信息。第二个使用提供的AccountId加载帐户详细信息。第一个是标准用户,第二个是管理员。

首先,我需要定义角色(用户,管理员),然后我需要为该角色分配一个用户帐户(或多个)。

然后我需要检查控制器中的角色。我喜欢这个概念:

http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/

所以,问题是:

  1. 是否有一种简单的方法可以在web.config中定义角色列表?
  2. 是否有一种简单的方法来定义哪些用户在web.config中的哪些角色?
  3. 有没有办法在不使用会员/角色提供者的情况下这样做?
  4. 我是从错误的角度接近这个吗?我应该将应用程序分成两个分支并根据文件夹授权保护它们吗?

2 个答案:

答案 0 :(得分:3)

我不是在web.config中存储授权数据的朋友。我更喜欢将其存储在数据库或其他xml文件中。

看看Xml Membership / Role Provider。这使用Membership / Role来读取userdata,但它显示了一种从xml文件存储和读取用户授权数据的方法。

对应用程序进行精心处理会使问题无法解决。

答案 1 :(得分:0)

请记住,整个权限管道仍然真正围绕IPrincipals,角色/成员资格提供程序只是一个窗口,以允许大多数应用程序不必编写管道代码。在这种情况下,您可以轻松添加数据库支持(或者只有列表足够短的静态)角色列表和角色中的用户列表并查询。把它包裹在一个自定义的IPrincipal背后,把那只小狗放在适当的地方,你就是金色的。