3

我有一个超级简单的 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. 我是否从错误的角度来处理这个问题?我应该将应用程序分成两个分支并根据文件夹授权保护它们吗?
4

2 回答 2

3

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

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

支持应用程序会移动问题而不是解决问题。

于 2009-08-20T11:11:14.947 回答
0

请记住,整个权限管道仍然围绕 IPrincipal 进行,角色/成员提供程序只是装点门面,以使大多数应用程序不必编写该管道代码。在这种情况下,您可以轻松地添加一个数据库支持的(或者如果列表足够短,则只是静态的)角色列表和角色中的用户列表并进行查询。把它包在一个定制的 IPrincipal 后面,然后在适当的地方把小狗塞进去,你就很成功了。

于 2009-08-20T18:21:25.450 回答