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); }
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); }