asp.net core 3.0 身份认证 替换为自已的提供程序 AuthenticationStateProvider replace to SelfAuthenticationStateProvider
时间:2019-10-09 22:31:19
收藏:0
阅读:1058
public void ConfigureServices(IServiceCollection services) { // 添加身份验证服务 services.AddAuthorizationCore(); services.AddScoped<AuthenticationStateProvider, ServerAuthenticationStateProvider>(); }
using BlazorDemo.Shared; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Authorization; using System.Net.Http; using System.Security.Claims; using System.Threading.Tasks; namespace BlazorDemo.Client { public class SelfAuthenticationStateProvider : AuthenticationStateProvider { private readonly HttpClient _httpClient; public SelfAuthenticationStateProvider(HttpClient httpClient) { _httpClient = httpClient; } public override async Task<AuthenticationState> GetAuthenticationStateAsync() { var userInfo = await _httpClient.GetJsonAsync<UserInfo>("user"); var identity = userInfo.IsAuthenticated ? new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, userInfo.Name) }, "selfauth") : new ClaimsIdentity(); return new AuthenticationState(new ClaimsPrincipal(identity)); } } }
原文:https://www.cnblogs.com/webenh/p/11644692.html
评论(0)