【问题标题】:Role based access to url in asp.net mvc在 asp.net mvc 中基于角色的 url 访问
【发布时间】:2026-01-06 13:30:01
【问题描述】:

我正在用 asp.net mvc 4 建立一个网站。我使用基本角色管理。我想做的是我想根据用户的角色授予对任何 url 的访问权限。我在想我们可以通过自定义过滤器来做到这一点。因为我不想在每个动作上写角色属性。 所以我想我要在数据库中定义基于角色的 url,然后在 OnActionExecuted 事件上我想检查当前用户是否允许请求的 url。这可能吗 ?

【问题讨论】:

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


    【解决方案1】:

    虽然有可能我不会这样做,原因如下:

    1. OnActionExecuting 事件在应用程序执行管道中相当早。应避免执行涉及到数据库的繁重操作。
    2. 随着应用程序的增长,它可能会产生维护问题。数百个用户、数百个链接、# 个角色等。

    【讨论】:

    • 如果你不同意我的方法,没关系,但如果你有另一个想法,你应该给出另一个想法
    • 我有 5 个 Admin , SuperAdmin , Supervisor , User , QA
    • 拥有特定的控制器,并允许特定角色执行操作。在控制器上应用角色名称(如有必要的操作)。它基本上是您在大多数情况下会看到的会员资格。
    • 我有 15 个控制器,200 多个动作。我不认为这是最好的方式
    • 很公平,所以如果你已经想好如何处理#2,那么你就可以走了,这是可能的。事实上,我正在使用此事件在数据库中记录所有带有详细信息的操作(仅在开发期间打开)。如果有帮助,一切都会很好。