2017-08-11 9 views
5

Wie bekomme ich die AuthenticationInfo-Eigenschaft aus dem HttpContext in ASP.NET Core 2.0. Ich verstehe, dass mit dem Redesign der Sicherheit in ASP.NET Core 2.0 die AuthenticationManager jetzt veraltet ist und dass ich .Authentication entfernen sollte.Get AuthenticationInfo in ASP.NET Core 2.0

habe ich so etwas wie dies in 1.1.2

var info = await httpContext.Authentication.GetAuthenticateInfoAsync("Automatic"); 
info.Properties.StoreTokens(new List<AuthenticationToken> 
{ 
    new AuthenticationToken 
    { 
     Name = OpenIdConnectParameterNames.AccessToken, 
     Value = accessToken 
    }, 
    new AuthenticationToken 
    { 
     Name = OpenIdConnectParameterNames.RefreshToken, 
     Value = refreshToken 
    } 
}); 

await httpContext.Authentication.SignInAsync("Automatic", info.Principal, info.Properties); 

Antwort

13

AuthenticationManager.GetAuthenticateInfoAsync(string) zu tun, indem IAuthenticationService.AuthenticateAsync(string) in 2.0 ersetzt wurde: es nun ein AuthenticateResult zurück, aber es funktioniert genau die gleiche Weise.

var result = await httpContext.AuthenticateAsync(); 
result.Properties.StoreTokens(new List<AuthenticationToken> 
{ 
    new AuthenticationToken 
    { 
     Name = OpenIdConnectParameterNames.AccessToken, 
     Value = accessToken 
    }, 
    new AuthenticationToken 
    { 
     Name = OpenIdConnectParameterNames.RefreshToken, 
     Value = refreshToken 
    } 
}); 

await httpContext.SignInAsync(result.Principal, result.Properties); 
+1

Hinweis „Automatisch“ ist nicht länger ein Schlüsselwort:

Ihr Snippet kann aktualisiert werden. Rufen Sie einfach '.AuthenticateAsync();' – Tratcher

+0

@Tratcher schönen Fang, danke. Ich war mir sicher, dass ich meine Antwort bearbeitet hatte, um Automatic durch [Schema] zu ersetzen, aber es sieht so aus, als hätte ich vergessen, meine Bearbeitung zu speichern. Das heißt, Sie haben Recht, es ist wahrscheinlich einfacher, das Standardschema sowohl für die Authentifizierung als auch für die Anmeldung zu verwenden. Daher habe ich meine Antwort entsprechend aktualisiert. – Pinpoint

Verwandte Themen