Roles
コントローラーアクションメソッドへのアクセスを許可された文字列を宣言して、私が今やっている方法は次のとおりです。
[Role(Roles="Regular User, Accounting, Administrator")]
public ActionResult ChangeAvatar()
{
if (User.Identity.IsAuthenticated)
{
var user = _userRepository.FindUserByEmail(User.Identity.Name);
var model = new ChangeAvatarModel();
model.CurrentAvatarUrl = user.AvatarUrl;
return View(model);
}
return RedirectToAction("Login", "Account");
}
を文字列として書きたくないのは、Roles
タイプミスして予期しないバグが発生する可能性があるためです。私はむしろそれらを一度書き、それで終わりたいと思います。
このユースケースに何を使用することをお勧めしますか? dictionary<enum, string>
? _
[Role(Roles=DefinedRoles.Accounting)] // Would return string: "Regular User, Account"
public ActionResult ChangeAvatar()
{
if (User.Identity.IsAuthenticated)
{
var user = _userRepository.FindUserByEmail(User.Identity.Name);
var model = new ChangeAvatarModel();
model.CurrentAvatarUrl = user.AvatarUrl;
return View(model);
}
return RedirectToAction("Login", "Account");
}