ASP.NET MVC角色没有数据库(和无角色提供)(ASP.NET MVC Roles witho

2019-07-02 11:52发布

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

我有两个单独的“编辑帐户”的观点:

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

第一次加载基于登录的用户帐户的详细信息。 第二加载使用提供的帐户ID帐户详细信息。 第一是标准用户,其二为管理员。

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

然后,我需要检查在控制器中的作用。 我喜欢这个概念:

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

所以,下到的问题:

  1. 有没有一种简单的方法来定义在web.config中的角色列表?
  2. 有没有一种简单的方法来定义哪些用户是在web.config中的哪个角色?
  3. 有没有办法做到不使用会员/角色提供者?
  4. 我是不是从错误的角度接近这一点? 我应该partioning应用分为两个分支,基于文件夹的授权保护他们?

Answer 1:

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

看一看的Xml会员/角色提供 。 这使用会员/角色读取用户数据,但它显示了一种方法存储和从XML文件中读取用户的授权数据。

Braching应用woulded移动问题,而不是解决。



Answer 2:

请记住,整个管道的权限还是很围绕IPrincipals,角色/会员供应商只是门面,让大多数应用程序没有编写管道代码。 在这种情况下,您可以轻松地添加角色的数据库支持(或者,如果列表足够短的只是静态)列表,用户的角色列表,并询问这一点。 总结起来在适当的地方自定义的IPrincipal和东西,小狗在那里的背后,你是金色的。



文章来源: ASP.NET MVC Roles without database (and without role provider)