Exemple #1
0
        public override async Task <AuthenticationState> GetAuthenticationStateAsync()
        {
            var uId = await _storage.GetAsync <string>("UserId");

            var name = await _storage.GetAsync <string>("Name");

            var role = await _storage.GetAsync <string>("Role");

            var expireTime = await _storage.GetAsync <DateTime>("ExpireTime");

            ClaimsIdentity identity;

            if (string.IsNullOrWhiteSpace(uId) || string.IsNullOrWhiteSpace(role) || string.IsNullOrWhiteSpace(name) || expireTime < DateTime.Now)
            {
                identity = new ClaimsIdentity(); // No auth in session storage
            }
            else
            {
                _        = _storage.SetAsync("ExpireTime", DateTime.Now.AddHours(5));
                identity = new ClaimsIdentity(new[]
                {
                    new Claim("UserId", uId),
                    new Claim(ClaimTypes.Role, role),
                    new Claim(ClaimTypes.Name, name),
                }, "Session");
            }

            var claims = new ClaimsPrincipal(identity);

            return(await Task.FromResult(new AuthenticationState(claims)));
        }
Exemple #2
0
        public async Task <List <StorageFileModel> > GetStorageFileModels()
        {
            using (var httpClient = new HttpClient())
            {
                var token = await protectedSessionStorage.GetAsync <string>("user");

                var endpoint = configuration.GetSection("Endpoints").GetValue <string>("Storage");
                httpClient.BaseAddress = new Uri($"{endpoint}/api/");
                httpClient.DefaultRequestHeaders.Add("Authorization", token);

                var response = await httpClient.GetAsync("storage");

                var content = await response.Content.ReadAsStringAsync();

                var result = Json.Deserialize <List <StorageFileModel> >(content);

                return(result);
            }
        }
        public override async Task <AuthenticationState> GetAuthenticationStateAsync()
        {
            var savedToken = (await _protectedSessionStore.GetAsync <string>("authToken")).Value;

            if (string.IsNullOrWhiteSpace(savedToken))
            {
                return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())));
            }

            _httpClientFactory.CreateClient().DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", savedToken);

            return(new AuthenticationState(
                       new ClaimsPrincipal(new ClaimsIdentity(ParseClaimsFromJwt(savedToken), "jwt"))));
        }
Exemple #4
0
        private async Task <TResult> GetAsyncWithCaching <TResult>(string api)
        {
            var cachedValue = await protectedSessionStorage.GetAsync <TResult>(api);

            if (cachedValue != null)
            {
                return(cachedValue);
            }

            var result = await InternalGetAsync <TResult>(api);

            await protectedSessionStorage.SetAsync(api, result);

            return(result);
        }
Exemple #5
0
        public override async Task <AuthenticationState> GetAuthenticationStateAsync()
        {
            try
            {
                var token = await protectedSessionStorage.GetAsync <string>("user");

                if (string.IsNullOrEmpty(token))
                {
                    return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())));
                }

                var value = TokenFactory.Reader(token);

                var identity = new ClaimsIdentity(value.Claims, "Fake authentication type");

                var user = new ClaimsPrincipal(identity);

                return(new AuthenticationState(user));
            }
            catch
            {
                return(new AuthenticationState(new ClaimsPrincipal(new ClaimsIdentity())));
            }
        }
        protected async Task RegisterNewFormAsync()
        {
            NewLoader = "inline";
            StateHasChanged();
            try
            {
                var changeEventValue = await ProtectedSessionStorage.GetAsync <bool>("gradu");

                if (changeEventValue)
                {
                    var UniqueSignatureName = await ProtectedSessionStorage.GetAsync <string>("UniqueSignatureName");

                    var UniquePhotoName = await ProtectedSessionStorage.GetAsync <string>("UniquePhotoName");

                    if (!string.IsNullOrEmpty(UniqueSignatureName) && !string.IsNullOrEmpty(UniqueSignatureName))
                    {
                        var authState = await authenticationStateTask;
                        var user      = await UserManager.GetUserAsync(authState.User);

                        //model.UniqueKey = Guid.NewGuid().ToString().GetHashCode().ToString("x");
                        model.UserId = user.Id;
                        var result = await CenterService.InsertRegistrationFormDataAsync(model);

                        if (result == "success")
                        {
                            await ToastObjRegistration.Show(new ToastModel
                            {
                                Title    = "Success!",
                                Content  = "You have submitted your registration form successfully.",
                                CssClass = "e-toast-success",
                                Icon     = "e-success toast-icons"
                            });

                            model      = new RegistrationViewModel();
                            NewLoader  = "none";
                            model.Year = DateTime.Now.Year.ToString();
                            await ProtectedSessionStorage.SetAsync("gradu", true);

                            model.GradutionName     = "Graduation";
                            model.PostGradutionName = "Post Graduation";
                            await Js.CloseModel("modalConfirmDelete");
                        }
                        else if (result == "failure")
                        {
                            NewLoader = "none";
                            await ToastObjRegistration.Show(new ToastModel
                            {
                                Title    = "Error!",
                                Content  = "You are sending bad request, please try again later!",
                                CssClass = "e-toast-danger",
                                Icon     = "e-error toast-icons"
                            });

                            await Js.CloseModel("modalConfirmDelete");
                        }
                        else
                        {
                            NewLoader = "none";
                            await ToastObjRegistration.Show(new ToastModel
                            {
                                Title    = "Error!",
                                Content  = result,
                                CssClass = "e-toast-danger",
                                Icon     = "e-error toast-icons"
                            });

                            await Js.CloseModel("modalConfirmDelete");
                        }
                    }
                    else
                    {
                        NewLoader = "none";
                        await ToastObjRegistration.Show(new ToastModel
                        {
                            Title    = "Error!",
                            Content  = "Please upload both files then try again!",
                            CssClass = "e-toast-danger",
                            Icon     = "e-error toast-icons"
                        });

                        await Js.CloseModel("modalConfirmDelete");
                    }
                }
                else
                {
                    NewLoader = "none";
                    await ToastObjRegistration.Show(new ToastModel
                    {
                        Title    = "Error!",
                        Content  = "You are not eligible!",
                        CssClass = "e-toast-danger",
                        Icon     = "e-error toast-icons"
                    });

                    await Js.CloseModel("modalConfirmDelete");
                }
            }
            catch (Exception ex)
            {
                NewLoader = "none";
                await ToastObjRegistration.Show(new ToastModel
                {
                    Title    = "Error!",
                    Content  = ex.Message,
                    CssClass = "e-toast-danger",
                    Icon     = "e-error toast-icons"
                });

                await Js.CloseModel("modalConfirmDelete");
            }
        }