4

証明されていないセクシーなテクニックの大食いとして、System.Web.Routing私は Web フォーム アプリケーションでナビゲーションなどを管理するために採用しました。さらに、ロールベースのセキュリティを web.config からルート定義自体に移動して、「このルートはロール x、y のみが利用できる」と言えるようにしたいと考えています。

したがって、IRouteHandler を実装するクラスを取得し、特定のページを読み込もうとする前に、ユーザーが許可されたロールのセットに含まれているかどうかを確認します。私の質問は、そうでない場合、そのハンドラー内のログインページにリダイレクトするにはどうすればよいですか? そのインスタンスでログインページをロードできることは知っていますが、「戻る」ページなどすべてを含むクリーンなリダイレクトを希望します。

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 )
    {
        ???
    }
}
4

1 に答える 1

4

GetHttpHandler からリダイレクトすることができます。使用するだけです:

requestContext.HttpContext.Response.Redirect("login.aspx");
于 2009-01-25T22:15:56.710 に答える