ASP.NET MVCルートは、ビジネスブランチへのきめ細かいロールベースのアクセス制御を可能にするようにどのように構成する必要がありますか?
すべてのビジネスエンティティは、それ自体で、またはその親エンティティを介して、ブランチに関連付けられています。任意の数のブランチのユーザーロールに基づいてアクションを承認するための洗練された方法はありますか?
1.ルートに{ブランチ}がありますか?
{branch}/{controller}/{action}/{id}
アクション:
[Authorize(Roles="Technician")]
public ActionResult BusinessWidgetAction(BusinessObject obj)
{
// Authorize will test if User has Technician role in branch context
// ...
}
2.事業体から支店を取得しますか?
{controller}/{action}/{id}
アクション:
public ActionResult BusinessWidgetAction(BusinessObject obj)
{
if (!User.HasAccessTo("WidgetAction", obj.Branch))
throw new HttpException(403, "No soup for you!"); // or redirect
// ...
}