我想将访问某些控制器仅限于登录用户。
我该怎么做。我的意思是如果用户未经授权,控件应该转到登录页面。这些用户位于数据库中的单独表中。
修改
这是我的实际代码:
[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之外的所有控制器。如何进一步解决这个问题?
答案 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