2

Я создаю приложение mvc с областями. Мне нужно иметь разные методы аутентификации для этих областей.Аутентификация для областей MVC3

I Обычно я использую httpmodules для аутентификации, в http-модуле я проверяю, проверен ли пользователь (я обычно использую файлы cookie), и если я его не перенаправляю.

У меня есть httpmodule для аутентификации всего приложения, и я хочу зарегистрировать еще один http-модуль для аутентификации в этом районе.

Я пробовал:

  1. с помощью файла web.config в папке области и листинг HttpModule там.
  2. Использование раздела местоположения в файле web.config.

Оба не работали для меня, когда httpmodule так и не получил вызов.

  1. Как я могу зарегистрировать httpmodule для области.
  2. Как я могу переопределить httpmodule всего приложения.
  3. Если это неправильный способ сделать это, это лучший способ сделать это.

Благодаря

ответ

2

Вы всегда можете написать собственный AuthorizeAttribute где вы переопределять AuthorizeCore. В этой функции вы всегда можете перенаправить на определенный loginurl.

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 определены в web.config

Смежные вопросы