Ejemplo n.º 1
0
        private async Task ProcessSignIn(ExamTesting.Models.User user)
        {
            var claims = new List <Claim> {
                new Claim(ClaimTypes.Name, user.Name),
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.NameIdentifier, user.UserId.ToString()
                          ),
            };

            if (user.isAdmin)
            {
                claims.Add(new Claim(ClaimTypes.Role, "Admin"));
            }

            claims.Add(new Claim(ClaimTypes.Role, "User"));

            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            var authProperties = new AuthenticationProperties
            {
                //ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(60), //Time Limit
                //IsPersistent = true //Stay Always
            };

            await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(claimsIdentity),
                authProperties);
        }
Ejemplo n.º 2
0
        public IActionResult Post(string values)
        {
            var newUser = new ExamTesting.Models.User()
            {
                UserId = new Guid()
            };

            JsonConvert.PopulateObject(values, newUser);

            _db.Users.Add(newUser);
            _db.SaveChanges();

            return(Ok());
        }
Ejemplo n.º 3
0
        public IActionResult Process(LoginViewModel model)
        {
            if (model.PasswordCheck)
            {
                var newUser = new ExamTesting.Models.User()
                {
                    UserId   = Guid.NewGuid(),
                    Email    = model.Email,
                    Name     = model.Name,
                    Password = model.Password
                };
                _db.Users.Add(newUser);
                _db.SaveChanges();
            }
            else
            {
                return(View("Index"));
            }

            return(RedirectToAction("Index", "SignIn", null));
        }