Alternative zur Verwendung von HttpContext in System.Web für Owin

Die ASP.NET-Authentifizierung basiert jetzt auf der OWIN-Middleware, die auf jedem OWIN-basierten Host verwendet werden kann. ASP.NET-Identitäthat keine Abhängigkeit von System.Web.

Ich habe einen AuthorizeAttribute-Filter, mit dem ich den aktuellen Benutzer abrufen und einige Eigenschaften hinzufügen muss, die später von Aktionscontrollern abgerufen werden.

Das Problem ist, dass ich den HttpContext verwenden muss, der zu System.Web gehört. Gibt es eine Alternative von HttpContext für Owin?

public class WebApiAuthorizeAttribute : AuthorizeAttribute 
{
    public override async Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
    {
        base.OnAuthorization(actionContext);

        Guid userId = new Guid(HttpContext.Current.User.Identity.GetUserId());

        ApplicationUserManager manager = new ApplicationUserManager(new ApplicationUserStore(new ApplicationDbContext())) { PasswordHasher = new CustomPasswordHasher() };
        ApplicationUser user = await manager.FindByIdAsync(userId);

        actionContext.Request.Properties.Add("userId", user.LegacyUserId);
    }
}

Hinweis: Ich habe gefundendiese Frage, was wie ein Duplikat aussieht, aber nach einer Lösung für das NancyFx-Projekt fragt, die für mich nicht gültig ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage