IRouteHandler.GetHttpHandlerでは()私はリダイレクトすることはできますか?

StackOverflow https://stackoverflow.com/questions/351354

質問

私は、ナビゲーションなどを管理するために、私の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");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top