public async Task Handle_UserFound_SecurityStampValid_ShouldReturnTrue()
        {
            // Arrange
            var user = await _wolkDbContext.CreateAndSaveUser();

            var request = new UserValidQuery {
                SecurityStamp = user.SecurityStamp, UserId = user.Id
            };

            // Act
            var result = await _handler.Handle(request, CancellationToken.None);

            // Assert
            Assert.IsTrue(result);
        }
Esempio n. 2
0
        public async Task InvokeAsync(
            HttpContext context,
            ILogger <ValidUserMiddleware> logger,
            IMediator mediator,
            IUserContext userContext)
        {
            if (context.User.Identity.IsAuthenticated)
            {
                var userId  = userContext.CurrentUserId;
                var request = new UserValidQuery {
                    UserId = userId, SecurityStamp = userContext.SecurityStamp
                };
                if (!await mediator.Send(request))
                {
                    logger.LogInformation(
                        $"User with ID '{userId}' not valid anymore because security stamp has changed.");
                    context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                    return;
                }
            }

            await _next(context);
        }