ASP.NETのメンバーシップモデルを調べます。このモデルは、Webアプリケーションのさまざまな部分のユーザーを認証および承認するために使用されます。
メンバーシップモデルを使用して、アプリケーション内で管理者、オペレーター、ディストリビューターの3つの役割を定義します。もちろん、アプリケーション内にユーザーを作成し、それらをこれらの役割に分割します。
最後は、実際の認証と承認です。Authorize属性を使用して、ユーザーがWebサイトの特定の部分にアクセスするために必要な役割を定義します。
[Authorize(Roles = "Operator")]
public ActionResult OperatorOnlyStuff()
{
return View();
}
また、ユーザーがログインしてサイト上のあらゆるものにアクセスできるようにするには、カスタム認証済みルート制約を定義します。
public class AuthenticatedRouteConstraint : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return httpContext.Request.IsAuthenticated;
}
}
そして、デフォルトルートでこのカスタム認証されたルート制約を使用します。
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new { isAuthenticated = new AuthenticatedConstraint()}
);