一度に複数のロールの承認をコントローラーに追加したいと思います。
通常は次のようになります。
[Authorize(Roles = "RoleA,RoleB,RoleC")]
public async Task<ActionResult> Index()
{
}
しかし、ロールはある時点で変更または拡張される可能性があるため、constに保存しました。
public const RoleA = "RoleA";
public const RoleB = "RoleB";
public const RoleC = "RoleC";
文字列はコンパイル時に認識されている必要があるため、これはできません。
[Authorize(Roles = string.join(",",RoleA,RoleB,RoleC)]
public async Task<ActionResult> Index()
{
}
問題を回避する方法はありますか?
私は単に「RoleA、RoleB、RoleC」を含むconstを書くことができますが、私は魔法の文字列が嫌いで、これは魔法の文字列です。ロールの名前を変更し、結合された文字列を変更するのを忘れると、大変なことになります。
MVC5を使用しています。ASP.NETのIDとロールはコンパイル時に認識されます。