1

我正在学习 MVC3,并在我的项目中实现了我自己的 MembershipProvider 和 RoleProviders,以利用当前在 winforms 应用程序登录和访问限制系统中使用的现有数据库表。

[Authorize]一切都按预期工作,但是我认为我可能在控制器操作上的标签方面做错了。

如果我使用这样的东西,限制工作正常: [Authorize(Roles = "Admin, Purchaser")]

Authorize然而,角色“Admin”和“Purchaser”的名称在我的数据库角色表中,我将它们硬编码到这个标签中似乎是“错误的” 。这意味着如果我在数据库表中添加了一个新角色,那么我将不得不去更改Authorize相关的标签。

它不像数据库中的角色会经常改变,它对我来说似乎有点“僵化”。

所以我的问题是,我这样做正确吗?有没有更好的方法,或者它只是在 MVC 项目中使用这个系统的标准方法?

非常感谢。

4

1 回答 1

0

是的。默认授权模型不灵活。但是由于您已经有了 custom ,因此您可以毫不费力地使其灵活RoleProvider

诀窍是在和Group之间使用中间实体。用户属于组,组具有角色。使用它,您可以检索特定用户所在的角色,反之亦然。UserRole

于 2012-08-13T08:39:01.787 回答