WebForms と Asp.Net ルーティングを使用しています。
メンバー フォルダーにセキュリティを実装しようとするときは、次の手順に従います。
http://blogs.msdn.com/b/mikeormond/archive/2008/06/21/asp-net-routing-and-authorization.aspx
private IHttpHandler GeneratePage(string VN, RequestContext RC)
{
string virtualPath
= string.Format("~/Members/{0}.aspx", VN);
if (UrlAuthorizationModule.CheckUrlAccessForPrincipal(virtualPath,
RC.HttpContext.User,
RC.HttpContext.Request.HttpMethod))
{
if (virtualPath != null)
{
return (Page)BuildManager.CreateInstanceFromVirtualPath(virtualPath, typeof(Page));
}
}
else
{
throw new SecurityException();
}
return null;
}
}
ただし、セキュリティ例外をスローするだけではなく、ログイン ページにリダイレクトしたいと考えています。a をハードコーディングしResponse.Redirect
たくありませんし、とにかくこれが正しい方法だとは思いません。
認可エンジンに制御を渡し、デフォルトのログインページにリダイレクトする「適切な」方法は何ですか?