如何正确使用【授权】
How To Use [Authorize] properly
我有两组用户,一组正在招聘,一组正在招聘。
我想限制每个用户组对某些页面的访问,但是当我在控制器中使用 [Authorize] 时,它允许访问任何登录用户而不区分他们来自哪个组?
[HttpPost]
public ActionResult Signin(string username, string password)
{
var mgr = new Cleaners.Models.UserManager(@"Data Source=.\sqlexpress;Initial Catalog='Cleaning Lady';Integrated Security=True");
var user = mgr.GetUser(username, password);
if (user == null)
{
return View(new UserViewModel { Name = username });
}
FormsAuthentication.SetAuthCookie(user.UserName, true);
UserViewModel.IsAuthenticated = User.Identity.IsAuthenticated;
return RedirectToAction("Private");
}
[Authorize]
public ActionResult Private()
{
return View();
}
有什么方法可以限制通过此控制器验证的用户访问 "private" 吗?
我举个简单的例子:
[Authorize(Roles="Contractor")]
public ActionResult Private()
{
return View();
}
这将检查当前 user/identity 是否有名为 Contractor 的角色。
我建议您阅读 this article 以了解它的基础知识。
我有两组用户,一组正在招聘,一组正在招聘。
我想限制每个用户组对某些页面的访问,但是当我在控制器中使用 [Authorize] 时,它允许访问任何登录用户而不区分他们来自哪个组?
[HttpPost]
public ActionResult Signin(string username, string password)
{
var mgr = new Cleaners.Models.UserManager(@"Data Source=.\sqlexpress;Initial Catalog='Cleaning Lady';Integrated Security=True");
var user = mgr.GetUser(username, password);
if (user == null)
{
return View(new UserViewModel { Name = username });
}
FormsAuthentication.SetAuthCookie(user.UserName, true);
UserViewModel.IsAuthenticated = User.Identity.IsAuthenticated;
return RedirectToAction("Private");
}
[Authorize]
public ActionResult Private()
{
return View();
}
有什么方法可以限制通过此控制器验证的用户访问 "private" 吗?
我举个简单的例子:
[Authorize(Roles="Contractor")]
public ActionResult Private()
{
return View();
}
这将检查当前 user/identity 是否有名为 Contractor 的角色。
我建议您阅读 this article 以了解它的基础知识。