如何排除角色访问控制器?

时间:2013-05-28 16:17:20

标签: c# asp.net-mvc-4 authorization

我的申请中有一个部分,不允许兼职人员使用,但允许全职员工。我们有比全职员工更多的全职员工;所以我认为创建一个列出兼职人员的角色会更容易,从这个控制器中排除他们,而不是获得完整的全职员工列表并维护该列表。我没有发现任何真正符合我要求的东西。大多数解决方案似乎都扩展了授权的功能,但我找不到与我正在寻找的东西接近的东西。

你能指出我正确的方向吗?

例如:

[Authorize(Roles!="PartTimers")]
public class MyController : Controller { }

1 个答案:

答案 0 :(得分:2)

它应该是[Authorize(Roles="FullTimers")],其他任何东西都违背了提供的框架。

稍后定义新用户组(来宾)时会发生什么?明确授予他们访问权限然后扫描整个应用程序以获取需要拒绝的操作会更安全。

WebForms框架确实提供了<deny roles ="..." />功能,但它主要与roles="*"users="?"一起使用,并且在此处不适用。

  

我认为创建一个列出兼职人员的角色并将其从此控制器中排除,而不是获取完整的全职员工列表并维护该列表会更容易。

“维护列表”的努力与成员数量不成比例。无论如何,您还需要一个复选框或其他内容。