HandleUnauthorizedRequest nicht überschreiben

In meiner asp.net mvc3-Anwendung habe ich ein benutzerdefiniertes Berechtigungsattribut (siehe unten).

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);
    }
}

ich habe[CustomAuthorize] Markiere meine Controller-Aktionen und dieAuthorizeCore Die Methode funktioniert einwandfrei - sie führt die gewünschte Logik aus (stellt sicher, dass das Konto tatsächlich aktiviert ist) und gibt sie dann als solche zurück.

Allerdings wird das überschriebenHandleUnauthorizedRequest Die Methode, mit der ich nach meinem Verständnis das Verhalten einer nicht autorisierten Anforderung steuern kann, wird überhaupt nicht ausgeführt. Ich füge dort einen Haltepunkt ein, ich füge dort Code ein, ich greife nicht autorisiert auf meine Anwendung zu und der Code wird nie ausgeführt.

Was vermisse ich?

EDIT: Ich habe ein paar Nachforschungen angestellt und ein paar andere Leute gefunden, die dieses Problem hatten, aber leider keine Lösung.

EDIT2: Beispielcode

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

EDIT 3: @Fabio

Folgendes versuche ich zu tun. Ich habe eine Anmeldeseite (Forms Auth), die einwandfrei funktioniert. Sie ruft meine benutzerdefinierte Anmeldung auf und ruft dann meine AuthorizeCore-Überschreibung auf. Meine Anwendung verwendet eine große Anzahl von Ajax-Anrufen. Mein letztendliches Ziel ist es, dass ein Benutzer die Anwendung verwendet und vom Administrator deaktiviert wird. Wenn er einen Ajax-Anruf tätigt, nachdem er deaktiviert wurde (obwohl er noch angemeldet ist), sollte er sich abmelden. Zu diesem Zweck möchte ich jedoch eine benutzerdefinierte Antwort zurückgeben, wenn der Benutzer einen Ajax-Aufruf ausführt. Dazu muss HandleUnauthorizedRequest überschrieben werden. Mein Authorize Core (und damit auch HandleUnauthorizedRequest) werden ignoriert, wenn der Benutzer angemeldet ist (obwohl ich für alle meine Controller-Aktionen, die der Ajax aufruft, Customauthorize-Tags habe).

Kurz gesagt: Ich möchte den Benutzer für jede Anfrage autorisieren, nicht nur für die Login-Anfrage (was der Mitgliedschaftsanbieter anscheinend gerade tut).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage