public string Create(User executor) { Guid id = _identityGenerator.Generate(); DateTime now = _timeProvider.Now(); DateTime expirationDateTime = _tokenExpirationProvider.GetExpiration(now); var tokenHandler = new JwtSecurityTokenHandler(); byte[] symmetricKey = _keyProvider.GetKey(); List <Claim> claims = executor.UserRoles.Select(x => new Claim(ClaimTypes.Role, x.Description)).ToList(); claims.Add(new Claim(ClaimTypes.Name, executor.Name)); claims.Add(new Claim("userguid", executor.Id.ToString())); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(claims), TokenIssuerName = "self", AppliesToAddress = "http://www.example.com", Lifetime = new Lifetime(now, expirationDateTime), SigningCredentials = new SigningCredentials( new InMemorySymmetricSecurityKey(symmetricKey), "http://www.w3.org/2001/04/xmldsig-more#hmac-sha256", "http://www.w3.org/2001/04/xmlenc#sha256"), }; SecurityToken token = tokenHandler.CreateToken(tokenDescriptor); string tokenString = tokenHandler.WriteToken(token); return(tokenString); }
public UserLoginSession Create(User executor) { DateTime dateTime = _tokenExpirationProvider.GetExpiration(_timeProvider.Now()); Guid token = _identityGenerator.Generate(); var userSession = new UserLoginSession(token, executor, dateTime); _writeableRepository.Create(userSession); return(userSession); }
public UserSession Create(User executor) { var userSession = new UserSession { Id = _tokenGenerator.Generate(), User = executor, Expires = _tokenExpirationProvider.GetExpiration(_timeProvider.Now()) }; _writeableRepository.Create(userSession); return(userSession); }