2016-05-23 5 views

Antwort

2

Sie da ApplicationCookie Sätze AutomaticChallenge auf true standardmäßig umgeleitet.

Zur Umleitung Verwendung verhindern:

options.Cookies.ApplicationCookie.AutomaticChallenge = false; 
+0

Bisherige Lösung ist sowieso ein guter Hack, wenn Sie beide 401 und 403 HTTP-Antworten behandeln möchten. Da Sie AutomaticChallenge verwenden, erhalten Sie immer ein 401 AFAICT. – chrilith

2

Es stellt sich in startup.cs aus

services.AddIdentity<ApplicationUser, IdentityRole>()

zu folgendem Code wird dieses Problem kümmern.

 services.AddIdentity<ApplicationUser, IdentityRole>(options => 
      { 
       options.Cookies.ApplicationCookie.Events = new CookieAuthenticationEvents 
       { 
        OnRedirectToAccessDenied = context => { 
         context.Response.StatusCode = 403; 
         return Task.FromResult(0); 
        }, 
        OnRedirectToLogin = context => 
        { 
         context.Response.StatusCode = 401; 
         return Task.FromResult(0); 
        } 
       }; 
       options.Cookies.ApplicationCookie.AutomaticAuthenticate = true; 
      }) 
Verwandte Themen