証明されていないセクシーなテクニックの大食いとして、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 )
{
???
}
}