当前我使用[Authorize(Roles =“.....”)]来保护我的控制器动作在我的ASP.NET MVC 1应用程序上,并且工作正常。但是,某些搜索视图需要具有按钮,这些按钮会根据搜索列表中选定的记录启用/禁用需要启用/禁用的这些操作,并且还需要登录用户的安全权限。ASP.NET MVC - 扩展授权属性
因此,我认为我需要有一个类访问数据库表,这些数据库通过应用程序角色交叉引用这些目标控制器/操作来确定这些按钮的状态。显然,这会使事情变得混乱,因为priv需要在两个地方保留 - 在该类/数据库表中以及控制器操作上(另外,如果我想更改对操作的访问权限,我将不得不更改代码和编译,而不仅仅是更改数据库表项)。
理想情况下,我想扩展[Authorize]功能,以便不必在[Authorize]代码中指定角色,而是根据用户,控制器和操作查询安全类,然后返回布尔值允许或拒绝访问。有没有关于这方面的好文章 - 我无法想象这是一件不寻常的事情,但我似乎正在努力寻找如何做到这一点的任何事情(可能是周一早上的大脑)。我已经开始执行一些代码,看文章http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/,它似乎开始关闭,但我无法找到“正确”的方式从httpContext获取调用控制器和操作值 - 我可能会欺骗一点点的代码从请求url中提取它们,但这对我来说并不合适,我宁愿正确地做。
干杯
MH