4
ASP.NET MVCで動的ログインURLにリダイレクトする方法
クライアントのページをホストするマルチテナントWebサイトを作成しています。URLの最初のセグメントは、次のURLルーティングスキーマを使用してGlobal.asaxで定義された、クライアントを識別する文字列になります。 "{client}/{controller}/{action}/{id}" これは、/ foo / Home / IndexなどのURLで正常に機能します。 しかし、[Authorize]属性を使用すると、同じマッピングスキームを使用するログインページにリダイレクトしたいと思います。したがって、クライアントがfooの場合、ログインページは、web.configで定義された固定の/ Account / Loginリダイレクトではなく、/ foo / Account / Loginになります。 MVCはHttpUnauthorizedResultを使用して401無許可ステータスを返します。これにより、ASP.NETがweb.configで定義されたページにリダイレクトされると思います。 では、ASP.NETログインリダイレクトの動作をオーバーライドする方法を知っている人はいますか?または、カスタム認証属性を作成してMVCでリダイレクトする方が良いでしょうか? 編集-回答: .Netソースを少し調べた後、カスタム認証属性が最良のソリューションであると判断しました。 public class ClientAuthorizeAttribute: AuthorizeAttribute { public override void OnAuthorization( AuthorizationContext filterContext ) { base.OnAuthorization( filterContext ); if (filterContext.Cancel && filterContext.Result is HttpUnauthorizedResult ) { filterContext.Result = new RedirectToRouteResult( new …