私は2人のユーザーグループを持ち、1人のグループは雇用されており、1人のグループが雇用されています。正しく[承認]を使用する方法
各グループの特定のページへのアクセスを制限したいのですが、コントローラで[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();
}
このコントローラで確認されたユーザーに「プライベート」へのアクセスを制限する方法はありますか?
[Authorize(Roles="Contractor")]
public ActionResult Private()
{
return View();
}
これは、現在のユーザ/アイデンティティが契約という名前の役割を持っているかどうかをチェックします:
アイデンティティーロールを使用し、それに基づいて認証することができます。 – Andrew
model-view-controllerタグは、パターンに関する質問用です。 ASP.NET-MVCの実装には特定のタグがあります。 –