以编程方式授权用户操作

时间:2015-06-02 14:29:23

标签: asp.net-mvc-4

我想将访问某些控制器仅限于登录用户。

我该怎么做。我的意思是如果用户未经授权,控件应该转到登录页面。这些用户位于数据库中的单独表中。

修改

这是我的实际代码:

[HttpPost]
    public ActionResult ValidUsers()
    {
        DBContextClass db = new DBContextClass();
        string loginId = Request.Form["LoginId"].ToString();
        string password = Request.Form["Password"].ToString();
        string name = (from user in db.User where user.LoginId.Equals(loginId) && user.Password.Equals(password) select user.Name).FirstOrDefault();
        if (name != null)
        {
            ViewBag.Name = name;
            return RedirectToAction("Index","Admin");
        }
        else
        {
            TempData["AlertMessage"] = "Invalid Login Id or Password, Please try again";
            return RedirectToAction("Login");
        }
}

我想只允许这些用户访问除HomeController之外的所有控制器。如何进一步解决这个问题?

2 个答案:

答案 0 :(得分:0)

您只需添加用户和角色即可

<authorization>
  <allow users="Kim"/>
  <allow roles="Admins"/>     
  <deny users="John"/> 
  <deny users="?"/>  //that will be anonymous users 
</authorization>

答案 1 :(得分:0)

考虑在控制器或整个控制器类中对操作方法使用[authorize]属性,它可以接受角色类型,用户等,有关更多信息,请参阅https://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute%28v=vs.118%29.aspx?f=255&MSPPError=-2147217396