我真的很感激一些关于我正在努力实现的反馈:
问题:
- 我想授权我的应用程序的用户在控制器上执行单个操作。例如:如果用户具有所需的授权,他可以对我的控制器类执行“保存”操作。
- 在我正在处理的项目中,角色的创建和他们的授权是由客户部署团队完成的,而不是我的控制。因此,我编写了一个可以分配给角色/用户的“控制点”,而我的应用程序只需要检查那个控制点。
- 如何在 ASP.Net MVC 中获取控制点概念?更具体地说,如何根据控制器上的用户权限启用/禁用视图上的按钮?
我的解决方案:
- 参考:http ://weblogs.asp.net/fredriknormen/archive/2008/03/12/asp-net-mvc-framework-2-interception-and-creating-a-role-action-filter.aspx - as一个起点
- 我没有像上面链接中解释的那样创建角色过滤器,而是有一个 ControlPointFilter 类,它可以获取模型并进行授权检查。
- 我遇到的问题是在 View 类中,我目前正在传递用户在 ViewData[] 集合中可以访问的控制点集合。
- 在 View 类中,我正在检查 ViewData 集合中是否存在相关的控制点(我不喜欢 - 希望在 View 类中将代码保持在最低限度)
- 另一个问题是 - 虽然在控制器类的属性中设置了实际的控制点名称,但我在哪里/如何将这些属性传递给视图并保持视图清洁?
希望对您有所帮助并感谢您的时间/努力来回答这个问题!
晴天