2017-08-11 23 views
5

में प्रमाणीकरण इंफो प्राप्त करें ISP.NET कोर 2.0 में HttpContext से AuthenticationInfo संपत्ति कैसे प्राप्त करें I मैं समझता हूं कि एएसपी.नेट कोर 2.0 में सुरक्षा के पुन: डिजाइन के साथ AuthenticationManager अब अप्रचलित है और मुझे .Authentication को हटा देना चाहिए।एएसपी.NET कोर 2.0

मैं 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); 

उत्तर

13

AuthenticationManager.GetAuthenticateInfoAsync(string) में इस तरह कुछ करने के लिए 2.0 में IAuthenticationService.AuthenticateAsync(string) ने उनकी जगह ली प्रयोग किया है: यह अब एक AuthenticateResult देता है, लेकिन यह ठीक उसी तरह काम करता है।

आपका स्निपेट के लिए अद्यतन किया जा सकता है:

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

नोट "स्वचालित" अब एक महत्वपूर्ण शब्द है। बस '। प्रमाणीकरणएसिंक();' – Tratcher

+0

@ ट्राचर अच्छा पकड़, धन्यवाद। मुझे यकीन था कि मैंने स्वचालित रूप से [स्कीम] द्वारा प्रतिस्थापित करने के लिए अपना जवाब संपादित किया था, लेकिन ऐसा लगता है कि मैं अपना संपादन सहेजना भूल गया था। उस ने कहा, आप सही हैं कि प्रमाणीकरण और साइन-इन दोनों के लिए डिफ़ॉल्ट योजना का उपयोग करना संभवतः आसान है, इसलिए मैंने तदनुसार अपना जवाब अपडेट किया। – Pinpoint