在 ASP.NET MVC 3 中针对控制器和操作名称授权当前用户
我需要在 ASP.NET MVC 3 中创建自定义授权。在应用程序内部,授权在 5 个表中定义:用户、组、用户组、权限、组权限。一个用户可以属于多个组,每个权限也可以分配给多个组。每个控制器操作都分配有一个 RightID。
内置授权无法适应此设置,因此我尝试创建自定义的 AuthorizeAttribute。当覆盖 AuthorizeCore 时,我意识到我无权访问控制器名称和操作名称。
我可以以某种方式要求路由器解析 AuthorizeCore 中的 Request.RawUrl 以获取控制器和操作名称吗?或者还有其他方法可以做我想做的事吗?
I need to create a customized authorization in ASP.NET MVC 3. Inside the app, authorization is defined in 5 tables: users, groups, usergroups, rights, grouprights. A user can belong to several groups, and each right can be assigned to several groups too. Each controller action is assigned a RightID.
The built in authorization can't accomodate this setup, so I tried to create a customized AuthorizeAttribute. When overriding AuthorizeCore, I realized I don't have access to controller name and action name.
Can I somehow ask the router to parse the Request.RawUrl inside AuthorizeCore to get controller and action name? Or is there another way to do what I want?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用可以访问所有 HttpContex 的操作过滤器来实现此目的。
You can achieve this using Action Filters where you have access to all HttpContex.