Пример #1
0
        public async Task <ActionResult> AnonymusRegister(UserForRegisterDto userForRegisterDto)
        {
            var cozen = HttpContext.Session.GetString("uuid");

            if (userForRegisterDto.Email == null || userForRegisterDto.KullaniciAdi == null || userForRegisterDto.ad == null || userForRegisterDto.soyad == null)
            {
                ModelState.AddModelError("kullanicihata", "Lütfen Heryeri Doldurunuz");
                return(RedirectToAction("Index", "Register"));
            }

            var hasKullaniciAdi = _context.Users.Where(u => u.KullaniciAdi == userForRegisterDto.KullaniciAdi);

            if (hasKullaniciAdi.Count() != 0)
            {
                ModelState.AddModelError("kullanicihata", "Kullanıcı Adı Bulunmaktadır");
                return(RedirectToAction("Index", "Register"));
            }
            byte[] passwordSalt, passworHash;
            HashingHelper.CreatePasswordHash(userForRegisterDto.password, out passworHash, out passwordSalt);
            var user = new UserdbModel
            {
                KullaniciAdi = userForRegisterDto.KullaniciAdi,
                Email        = userForRegisterDto.Email,
                Ad           = userForRegisterDto.ad,
                Soyad        = userForRegisterDto.soyad,
                SifreHash    = passworHash,
                SifreSalt    = passwordSalt,
                Status       = true
            };

            _context.Users.Add(user);
            _context.SaveChanges();
            var current = _context.Users.Where(u => u.KullaniciAdi == userForRegisterDto.KullaniciAdi).FirstOrDefault();

            UserOperationClaim userOperation = new UserOperationClaim
            {
                UserId           = current.ID,
                OperationClaimId = 2
            };

            _context.UserOperationClaims.Add(userOperation);
            _context.SaveChanges();
            var result = _context.Users.Where(u => u.KullaniciAdi == user.KullaniciAdi) as UserdbModel;

            HttpContext.Session.SetString("username", user.KullaniciAdi);
            _jwtHelper = new JwtHelper(Configuration);
            var claims = _efUser.GetClaims(user);
            var token  = _jwtHelper.CreateToken(user, claims);

            HttpContext.Session.SetString("JWToken", token.Token);

            _context.CozulenTest.Where(c => c.cozen == cozen).FirstOrDefault().cozen = user.KullaniciAdi;
            _context.Istatistik.Where(c => c.cozen == cozen).FirstOrDefault().cozen  = user.KullaniciAdi;
            _context.SaveChanges();
            HttpContext.Session.Remove("uuid");

            return(RedirectToAction("GetTest", "Test"));
        }
Пример #2
0
        public IEnumerable <Claim> SetClaims(UserdbModel user, List <OperationClaim> operationClaims)
        {
            var claims = new List <Claim>();

            claims.AddNameIdentifier(user.ID.ToString());
            claims.AddEmail(user.Email);
            claims.AddName($"{user.Ad} {user.Soyad}");
            claims.AddRoles(operationClaims.Select(c => c.Name).ToArray());
            return(claims);
        }
Пример #3
0
        public JwtSecurityToken CreateJwtSecurityToken(TokenOptions tokenOptions, UserdbModel user,
                                                       SigningCredentials signingCredentials, List <OperationClaim> operationClaims)
        {
            var jwt = new JwtSecurityToken(
                issuer: tokenOptions.Issuer,
                audience: tokenOptions.Audience,
                expires: _accessTokenExpiration,
                notBefore: DateTime.Now,
                claims: SetClaims(user, operationClaims),
                signingCredentials: signingCredentials
                );

            return(jwt);
        }
Пример #4
0
        public AccessToken CreateToken(UserdbModel user, List <OperationClaim> operationClaims)
        {
            var securityKey        = SecurityKeyHelper.CreateSecurityKey(_tokenOptions.SecurityKey);
            var signingCredentials = SigningCredentialsHelper.CreateSigningCredential(securityKey);
            var jwt = CreateJwtSecurityToken(_tokenOptions, user, signingCredentials, operationClaims);
            var jwtSecurityTokenHandler = new JwtSecurityTokenHandler();
            var token = jwtSecurityTokenHandler.WriteToken(jwt);

            return(new AccessToken
            {
                Token = token,
                Expiration = _accessTokenExpiration
            });
        }
Пример #5
0
 public List <OperationClaim> GetClaims(UserdbModel user)
 {
     using (_context)
     {
         var result = from operationClaim in _context.OperationClaims
                      join userOperationClaim in _context.UserOperationClaims
                      on operationClaim.Id equals userOperationClaim.OperationClaimId
                      where userOperationClaim.UserId == user.ID
                      select new OperationClaim {
             Id = operationClaim.Id, Name = operationClaim.Name
         };
         return(result.ToList());
     }
 }
Пример #6
0
        public IActionResult Index(UserdbModel userModel)
        {
            var currentUsername = HttpContext.Session.GetString("username");

            userModel.KullaniciAdi = currentUsername;
            ViewData["username"]   = currentUsername;
            if (userModel.Ad.IsNullOrEmpty() || userModel.Soyad.IsNullOrEmpty() || userModel.Email.IsNullOrEmpty())
            {
                ModelState.AddModelError("bos", "Lütfen Boş Bırakmayınız");
                return(View(userModel));
            }

            _context.Entry(userModel).State = EntityState.Modified;
            _context.SaveChanges();
            return(View(userModel));
        }