Пример #1
0
        public async Task HandleAsync(AuthorizationHandlerContext context)
        {
            var isAuthenticated = context.User.Identity.IsAuthenticated;

            if (isAuthenticated)
            {
                var user = await GetUserAsync(HttpUserModel.GenerateHttpUserModel(_httpContextAccessor));

                //TODO: Add user to service

                var pendingRequirements = context.PendingRequirements.ToList();
                //TODO: Add permission and Role filter
            }
            await Task.CompletedTask;
        }
Пример #2
0
        private async Task <UserModel> GetUserAsync(HttpUserModel httpUser)
        {
            using (await _lock.LockAsync().ConfigureAwait(true))
            {
                var user = await _mediator.Send(new GetUserByIdentityQuery()
                {
                    Identity = httpUser.Identity,
                    Provider = httpUser.Provider
                });

                if (user == null)
                {
                    user = await _mediator.Send(new CreateUserByIdentityCommand()
                    {
                        User = _mapper.Map <UserModel>(httpUser)
                    });
                }
                return(user);
            }
        }