許可をどこで行うべきかについて疑問があります。たとえば、HttpGet create と HttpPost create の 2 つのメソッドを持つ PersonController があり、リポジトリ レイヤーと通信するサービス レイヤーを使用しています。さて、最良の方法は何ですか?
1:
[HttpPost]
public ActionResult Create(Person person)
{
if (ModelState.IsValid)
{
new PersonService().Save(person, (int)Session["UserId"]);//I check here permission here
return RedirectToAction("Home","Home");
}
return View();
}
2:
[HttpPost]
public ActionResult Create(Person person)
{
if (ModelState.IsValid)
{
var personService = new PersonService();
if(personService.UserHasPermission((int)Session["UserId"]){
personService.Save(id);
}
return RedirectToAction("Home","Home");
}
return View();
}
言い換えれば、ビジネスレイヤー内で行うべきですか、それともコントローラーで行うべきですか?