如何正确使用【授权】

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 以了解它的基础知识。