【问题标题】:Specific users authorization for specific pages特定页面的特定用户授权
【发布时间】:2014-05-17 17:52:22
【问题描述】:

我希望在 asp.net mvc 中创建控制器类,其中某些视图将由特定用户访问,而其他视图将由其余用户访问。

public class HomeController : Controller
{

    public ActionResult Page1()
    {
        return View();
    }
    public ActionResult Page2()
    {
        return View();
    }
}

上面的代码例如 Page1() 将被 x 个用户访问, Page2() 将被 y 个用户访问。我想创建一个登录部分 .cshtml 代码,x 用户只能看到 Page1() 标题,而不是 Page2() 并且 y 用户只能看到 Page2() ,而不是 Page1() 网站中的标题。怎么办?

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 razor


    【解决方案1】:

    使用[Authorize]动作属性

    public class HomeController : Controller
    {
    
    [Authorize(Users="x")]
    public ActionResult Page1()
    {
        return View();
    }
    [Authorize(Users="y")]
    public ActionResult Page2()
    {
        return View();
    }
    

    }

    请参阅下面的链接以了解 MVC 中的身份验证和授权。

    http://nerddinnerbook.s3.amazonaws.com/Part9.htm

    http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx

    您可以使用SQLRoleProvider 进行授权或自定义授权。

    http://www.mattwrock.com/post/2009/10/14/implementing-custom-membership-provider-and-role-provider-for-authinticating-aspnet-mvc-applications.aspx

    或者使用自定义的自定义授权属性

    http://msdn.microsoft.com/en-us/library/ee707357%28v=vs.91%29.aspx

    【讨论】:

    • 如何在这个属性 '[Authorize(Users="y")] ' 中动态添加多个用户?我问的是 .cshtml 代码,而不是 .cs 代码。我需要 .cshtml 代码来授权特定用户访问特定页面。
    • 将所有用户添加到一个访问页面 1 的角色中,页面 2 的访问方式相同。在 login.cshtml 中,如果 @User.IsInRole("Page 1 role") 显示“页面 1 标题”,否则如果 @ User.IsInRole("第2页角色") 显示"第2页标题"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多