HandleUnauthorizedRequest nie przesłania

W mojej aplikacji mvc3 asp.net mam niestandardowy atrybut autoryzacji, jak pokazano poniżej.

public class CustomAuthorize : AuthorizeAttribute
{
    public IAccountRepository AccountRepository { get; set; }

    public CustomAuthorize()
    {
        this.AccountRepository = new UserModel();
    }

    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        base.AuthorizeCore(httpContext);
        return AccountRepository.isEnabled(HttpContext.Current.User.Identity.Name);
    }

    protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) 
    {
        base.HandleUnauthorizedRequest(filterContext);
    }
}

Mam[CustomAuthorize] znacznik na moich akcjach kontrolera iAuthorizeCore metoda działa dobrze - wykonuje logikę, której chcę (upewniając się, że konto jest faktycznie włączone), a następnie powraca jako taka.

Jednak przesłoniętyHandleUnauthorizedRequest metoda, która, jak rozumiem, powinna pozwolić mi kontrolować zachowanie nieautoryzowanego żądania, nie działa w ogóle. Umieściłem tam punkt przerwania, umieściłem tam kod, nieautoryzowałem dostępu do mojej aplikacji i kod nigdy nie działa.

czego mi brakuje?

EDYTUJ: Zrobiłem więcej badań i znalazłem kilka innych osób, które miały ten problem, ale niestety nie znalazłem rozwiązania.

EDIT2: Przykładowy kod

[CustomAuthorize]
public class UserController: Controller
{
    public UserController() 
    {
        //do stuff here
    }
}

EDYCJA 3: @Fabio

Oto, co próbuję zrobić. Mam stronę logowania (formularze auth), która działa dobrze - wywołuje mój niestandardowy login, a następnie wywołuje moje zastąpienie AuthorizeCore. Moja aplikacja korzysta z dużej liczby wywołań ajaxowych, a mój ostateczny cel dotyczy zawsze, gdy użytkownik korzysta z aplikacji, a administrator je wyłącza, wykonując wywołanie ajax po wyłączeniu (chociaż nadal jest zalogowany) powinien je wylogować. Jednak aby to zrobić, chcę zwrócić niestandardową odpowiedź, jeśli użytkownik tworzy wywołanie ajax, i do tego muszę ovverride HandleUnauthorizedRequest. Ale mój Authorize Core (i przez rozszerzenie HandleUnauthorizedRequest) jest ignorowany, jeśli użytkownik jest zalogowany (pomimo faktu, że mam niestandardowe tagi na wszystkich moich akcjach kontrolera, które wywołuje ajax).

W skrócie: chcę autoryzować użytkownika na każde żądanie, a nie tylko na żądanie logowania (co wydaje się być tym, co robi teraz dostawca członkostwa)

questionAnswers(2)

yourAnswerToTheQuestion