我试图找到一个很好的模式用于用户访问验证。

基本上上的web表单应用我有一个框架,用于用户角色定义访问,即,使用者分为角色,和“页”被授权访问的页面。我与所有在它列出的网页数据库中有一个表。页面可以有一个得到他们的访问权限继承自父子页面。

当定义访问,我赋予的角色访问的页面。在角色的用户则必须访问的页面上。这是相当简单的管理为好。我实现了这个问题的方法是在一个基类继承的每一页。在页面加载/初始化我会检查网页的网址和验证访问和采取适当的行动。

不过我现在工作的一个MVC应用程序,需要执行类似的东西,但我不能找到一个很好的方法,使我以前的解决方案的工作。纯粹是因为我没有静态页面的URL路径。另外我不知道如何以最佳方式处理这个,因为我现在有控制器而不是aspx页面。

我看了看MVCSitemapprovider,但这并不能正常的工作数据库,它需要一个网站地图文件。我需要控制对飞改变用户persmissions的。

任何想法/建议/指针将不胜感激。

有帮助吗?

解决方案

您的技术很容易被创建自己的ActionFilter完成: http://msdn.microsoft.com/en-us/library/dd410056。 ASPX

您可以那么该属性适用于控制器或动作方法和很容易推出自己的网页的安全性。

public class MinmalSecurity : ActionFilterAttribute
{
    private string _roles;
    public MinmalSecurity(string roles)
    {
        _roles = roles;
    }

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        //go to database,find permissions, redirect or proceed as nescessary

        base.OnActionExecuting(filterContext);
    }
}

其他提示

当您创建一个MVC应用程序,而不是空白的网站,还有包括基本ASP.NET会员供应商。会做你正在寻找的一切,几乎没有编码。

下面是MSDN: http://msdn.microsoft.com/en -us /库/ yh26yfzy.aspx

下面是一个CodePlex项目,它扩展了功能更比建于: HTTP://mvcmembership.codeplex。 COM /

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top