2

我創造與地區一個MVC應用程序。 我需要對這些區域有不同的身份驗證方法。身份驗證MVC3地區

我通常使用的HttpModules進行身份驗證,HTTP模塊我檢查,如果用戶進行身份驗證(我通常使用cookies)的,如果沒有我重定向他。

所以,我對於驗證整個應用程序的一個HttpModule,我要註冊其他的HttpModule在該地區的認證。

我想:

  1. 使用在該地區文件夾中的web.config文件,列出的HttpModule那裏。
  2. 在web.config文件中使用位置部分。

雙方並沒有爲我工作的HttpModule從來沒有得到所謂的。

  1. 如何爲一個區域註冊httpmodule。
  2. 我如何覆蓋整個應用程序的httpmodule。
  3. 如果這是繞了什麼是這樣做的更好的方法錯了。

感謝

回答

2

你總是可以寫,你重寫AuthorizeCore定製AuthorizeAttribute。在這個功能中,你總是可以重定向到特定的登錄名。在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