IRouteHandler.GetHttpHandlerでは()私はリダイレクトすることはできますか?
質問
私は、ナビゲーションなどを管理するために、私のWebフォームアプリケーションでSystem.Web.Routing
採用してきた実績のないセクシーな技術のための大食家として。さらに、私は、「このルートは、yの役割xにのみ使用可能です」と言うことができるようにルートの定義自体にweb.configファイルからのロールベースのセキュリティを移動するために願っています。
だから私はIRouteHandlerを実装するクラスを持っているし、それが特定のページをロードしようとする前に、ユーザは、それが許可されたロールのセットの中にあるかどうかをチェックします。彼らはどのように私はそのハンドラ内で、ログインページにリダイレクトしない、ない場合は私の質問は、ありますか?私はそれがそのインスタンスにログインページをロードすることが可能です知っているが、私は「returnto」ページでクリーンなリダイレクトを好むだろうし、すべてます。
public IHttpHandler GetHttpHandler(RequestContext requestContext) {
if ( AllowedRoles != null )
{
bool allowed = false;
for ( int i = 0; i < AllowedRoles.Length; i++ )
{
if ( requestContext.HttpContext.User.IsInRole( AllowedRoles[i] ) )
{
allowed = true;
break;
}
}
if ( !allowed )
{
???
}
}
解決
これはGetHttpHandlerからのリダイレクトを行うことが可能です。ただ、使用します:
requestContext.HttpContext.Response.Redirect("login.aspx");
所属していません StackOverflow