我正在尝试找到一种用于用户访问验证的良好模式。
基本上在一个 webforms 应用程序上,我有一个框架,它使用用户角色来定义访问权限,即,用户被分配到角色中,并且“页面”被授予对页面的访问权限。我在数据库中有一个表,其中列出了所有页面。页面可以具有从父页面继承其访问权限的子页面。
在定义访问权限时,我为角色分配了对页面的访问权限。然后,该角色中的用户可以访问这些页面。管理起来也相当简单。我实现这一点的方式是在每个页面都继承的基类上。在 pageload/init 上,我会检查页面 url 并验证访问权限并采取适当的行动。
但是我现在正在开发一个 MVC 应用程序并且需要实现类似的东西,但是我找不到让我以前的解决方案工作的好方法。纯粹是因为我没有静态页面作为 url 路径。另外我不确定如何最好地解决这个问题,因为我现在有控制器而不是 aspx 页面。
我查看了 MVCSitemapprovider,但这在数据库中不起作用,它需要一个站点地图文件。我需要控制动态更改用户权限。
任何想法/建议/指针将不胜感激。