2

私は領域を持つmvcアプリケーションを作成しています。 私はこれらの分野に対して異なる認証方法を持つ必要があります。MVC3領域の認証

私は通常、httpモジュールで認証にhttpmodulesを使用します。ユーザーが認証されている(通常はCookieを使用している)かどうかを確認し、そうでない場合はリダイレクトします。

私はアプリケーション全体を認証するためのhttpmoduleを持っています。私はその領域で認証するために別のhttpモジュールを登録したいと思います。

私が試した:

  1. をエリアフォルダにあるweb.configファイルを使用して、そこにHttpModuleををリストアップ。
  2. web.configファイルの場所セクションを使用します。

どちらも、httpmoduleが呼び出されなかったため、どちらもうまくいきませんでした。

  1. 地域のhttpモジュールを登録するにはどうすればよいですか。
  2. 私はどのようにアプリケーション全体のhttpmoduleを無効にすることができます。
  3. これが間違った方法であれば、これを実行する良い方法は何でしょうか。

おかげ

答えて

2

あなたはいつもあなたがAuthorizeCoreをオーバーライドするカスタムAuthorizeAttributeを書くことができます。この機能では、常に特定のloginurlにリダイレクトすることができます。 web.configファイル

で定義されたリダイレクトを含まない場合

public class CustomAuthorizationAttribute : AuthorizeAttribute 
{ 
    private string notifyUrl = string.Format("{0}{1}", GeneralHelper.BaseSiteUrl, "Login"); 

    protected override bool AuthorizeCore(HttpContextBase httpContext) 
    { 
     if (httpContext.User.Identity.IsAuthenticated) 
     { 
      // get userinformation 
      return true; 
     } 

     httpContext.Response.Redirect(NotifyUrl); 
     return false; 
    } 
} 

、それがリダイレクトされるウィルloginurl

関連する問題