コード例 #1
0
        public IActionResult SearchUser(Guid Id)
        {
            HttpContext.Request.Headers.TryGetValue("Authorization", out StringValues bearerToken);
            string token = bearerToken.ToString().Replace("Bearer", "").Trim();

            UserSessionStatus userStatus = userService.AuthenticateSession(Id, token, out User user).Result;

            switch (userStatus)
            {
            case UserSessionStatus.Authorized:
                return(Ok(new
                {
                    id = user.Id,
                    createdOn = user.CreatedOn,
                    lastUpdatedOn = user.LastUpdatedOn,
                    lastLoginOn = user.LastLoginOn,
                    token = user.Token
                }));

            case UserSessionStatus.Unauthorized:
            {
                return(Ok(new { message = "Unauthorized" }));
            }

            case UserSessionStatus.InvalidSession:
            {
                return(Ok(new { message = "Invalid Session" }));
            }
            }
            return(Ok(new { message = "Error" }));
        }
コード例 #2
0
        public void AuthenticateSession_InvalidUserId_Test()
        {
            // Arrange
            string jwtToken = "";
            Guid   userId   = Guid.NewGuid();

            userRepository.Setup(x => x.FindUserById(userId)).Returns((DbUser)null);
            userService_UnderTest = new UserService(userRepository.Object, tokenManager.Object, mapper.Object);

            // Act
            UserSessionStatus userStatus = userService_UnderTest.AuthenticateSession(userId, jwtToken, out DomainUser user).Result;

            // Assert
            Assert.Equal(UserSessionStatus.Unauthorized, userStatus);
        }
コード例 #3
0
        public void AuthenticateSession_InvalidToken_Test()
        {
            // Arrange
            string jwtToken = "Invalid-Token";
            Guid   userId   = Guid.NewGuid();

            userRepository.Setup(x => x.FindUserById(userId)).Returns(
                new DbUser()
            {
                Id    = userId,
                Token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjZiNDYzZjVlLTZlNDItNDU3Mi04OGMxLTQxODE3MTQ3NDc5MSIsIm5iZiI6MTU1ODk0MTkzMCwiZXhwIjoxNTU4OTQzNzMwLCJpYXQiOjE1NTg5NDE5MzB9.46Zr8u8QA0aL2ujrRvZM0eLXrkgzvRXtXACoQQcx1I4"
            });
            userService_UnderTest = new UserService(userRepository.Object, tokenManager.Object, mapper.Object);

            // Act
            UserSessionStatus userStatus = userService_UnderTest.AuthenticateSession(userId, jwtToken, out DomainUser user).Result;

            // Assert
            Assert.Equal(UserSessionStatus.Unauthorized, userStatus);
        }
コード例 #4
0
 public UserSessionContext(Guid sessionId, UserInfo user, DateTime startedOn, string token, string csrfToken, UserSessionStatus status,
                           LogLevel logLevel, long version, int timeZoneOffsetMinutes, string userAgent = null, IDictionary <string, object> values = null)
 {
     SessionId       = sessionId;
     User            = user;
     StartedOn       = startedOn;
     Token           = token;
     CsrfToken       = csrfToken;
     _status         = status;
     _logLevel       = logLevel;
     Version         = version;
     _timeZoneOffset = timeZoneOffsetMinutes;
     _userAgent      = userAgent;
     if (values != null && values.Count > 0)
     {
         foreach (var de in values)
         {
             _values[de.Key] = de.Value;
         }
     }
     _modified = false;
 }