Exemplo n.º 1
0
        public string WriteToken()
        {
            var securityKey        = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_symetricSecurityKey));
            var signingCredentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);
            var header             = new System.IdentityModel.Tokens.Jwt.JwtHeader(signingCredentials);
            var payload            = new System.IdentityModel.Tokens.Jwt.JwtPayload {
                { ApplicationKeyKey, ApplicationKey }, { UserKey, UserName }
            };

            if (ExpirationDate.HasValue)
            {
                payload.Add(ExpirationKey, ExpirationDate.Value);
            }

            var jwt     = new System.IdentityModel.Tokens.Jwt.JwtSecurityToken(header, payload);
            var handler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();

            return(handler.WriteToken(jwt));
        }
Exemplo n.º 2
0
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);

            builder.Services.AddBlazoredLocalStorage();
            builder.Services.AddOptions();
            builder.Services.AddAuthorizationCore();
            builder.Services.AddScoped <TableSortService, TableSortService>();
            builder.Services.AddScoped <AuthenticationStateProvider, ApiAuthenticationStateProvider>();
            builder.Services.AddScoped <IAuthService, AuthService>();
            builder.Services.AddScoped <IGlobeDataStorage, GlobeLocalStorage>();
            builder.Services.AddScoped <SpinnerService>();
            builder.Services.AddScoped <AutoSpinnerHttpMessageHandler>();
            builder.Services.AddScoped(serviceProvider =>
            {
                var blazorDisplaySpinnerAutomaticallyHttpMessageHandler = serviceProvider.GetRequiredService <AutoSpinnerHttpMessageHandler>();
                var wasmHttpMessageHandlerType = Assembly.Load("WebAssembly.Net.Http").GetType("WebAssembly.Net.Http.HttpClient.WasmHttpMessageHandler");
                var wasmHttpMessageHandler     = (HttpMessageHandler)Activator.CreateInstance(wasmHttpMessageHandlerType);

                blazorDisplaySpinnerAutomaticallyHttpMessageHandler.InnerHandler = wasmHttpMessageHandler;
                var uriHelper = serviceProvider.GetRequiredService <NavigationManager>();
                Console.WriteLine("return new HttpClient");
                return(new HttpClient(blazorDisplaySpinnerAutomaticallyHttpMessageHandler)
                {
                    BaseAddress = new Uri(uriHelper.BaseUri)
                });
            });

            builder.RootComponents.Add <App>("app");

            builder.Services.AddBaseAddressHttpClient();

            var host = builder.Build();

            // https://stackoverflow.com/questions/60793142/decoding-jwt-in-blazore-client-side-results-wasm-system-argumentexception-idx1
            _ = new System.IdentityModel.Tokens.Jwt.JwtPayload();
            await host.RunAsync();
        }