コード例 #1
0
        public async Task <ActionResult <ColUserDto> > RegisterCollege(RegisterCollegeDto registerCollegeDto)
        {
            if (await ColUserExists(registerCollegeDto.ColUserName))
            {
                return(BadRequest("Username is taken"));
            }

            using var hmac = new HMACSHA512();

            var colUser = new ColUser
            {
                ColUserName  = registerCollegeDto.ColUserName.ToLower(),
                PasswordHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(registerCollegeDto.Password)),
                PasswordSalt = hmac.Key,
                ColUserType  = registerCollegeDto.ColUserType
            };

            _context.ColUsers.Add(colUser);
            await _context.SaveChangesAsync();

            return(new ColUserDto
            {
                ColUserName = colUser.ColUserName,
                Token = _tokenService.CreateColToken(colUser),
                ColUserType = "College"
            });
        }
コード例 #2
0
        public string CreateColToken(ColUser colUser)
        {
            var claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.NameId, colUser.ColUserName)
            };

            var creds = new SigningCredentials(_key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(7),
                SigningCredentials = creds
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
コード例 #3
0
 public void Update(ColUser coluser)
 {
     _context.Entry(coluser).State = EntityState.Modified;
 }