Exemplo n.º 1
0
        public async Task <IActionResult> AdminLogIn(AdminLogInViewModel lvm)
        {
            if (ModelState.IsValid)
            {
                //find user by their email
                var user = await _userManager.FindByEmailAsync(lvm.Email);

                var result = await _signInManager.PasswordSignInAsync(lvm.Email, lvm.Password, lvm.RememberMe, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    const string issure = "www.Erik.com";
                    //claim list
                    List <Claim> myClaims = new List <Claim>();

                    //claim users name is their email adress
                    Claim claim1 = new Claim(ClaimTypes.Name, user.Email, ClaimValueTypes.String, issure);
                    myClaims.Add(claim1);

                    //claim users role
                    Claim claim2 = new Claim(ClaimTypes.Role, "Administrator", ClaimValueTypes.String, issure);
                    myClaims.Add(claim2);

                    //claim for age
                    Claim claim3 = new Claim(ClaimTypes.DateOfBirth, user.Birthday.Date.ToString(), ClaimValueTypes.Date);
                    myClaims.Add(claim3);

                    //claim likes dogs
                    Claim claim4 = new Claim(ClaimTypes.Email, user.Email, ClaimValueTypes.String, issure);
                    myClaims.Add(claim4);

                    var userIdentity = new ClaimsIdentity("Registration");
                    userIdentity.AddClaims(myClaims);

                    var userPrincipal = new ClaimsPrincipal(userIdentity);

                    User.AddIdentity(userIdentity);

                    await HttpContext.SignInAsync(
                        "MyCookieLogin", userPrincipal,
                        new AuthenticationProperties
                    {
                        ExpiresUtc   = DateTime.UtcNow.AddMinutes(30),
                        IsPersistent = false,
                        AllowRefresh = false
                    });


                    return(RedirectToAction("Index", "Home"));
                }
            }
            string error = "you are wrong";

            ModelState.AddModelError("", error);
            return(View());
        }
        public async Task <bool> TryLoginAsync(AdminLogInViewModel viewModel)
        {
            // Create DB schema (first time)
            //var createSchemaResult = await _identityContext.Database.EnsureCreatedAsync();

            // Create a hard coded user (first time)
            // var createResult = await _userManager.CreateAsync(new IdentityUser("Admin"), "Password_123");

            var loginResult = await _signInManager.PasswordSignInAsync(viewModel.Username, viewModel.Password, false, false);

            return(loginResult.Succeeded);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> AdminLogIn(AdminLogInViewModel lvm)
        {
            if (ModelState.IsValid)
            {
                var result = await _signInManager.PasswordSignInAsync(lvm.Email, lvm.Password, lvm.RememberMe, lockoutOnFailure : false);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            string error = "you are wrong";

            ModelState.AddModelError("", error);
            return(View());
        }
        public async Task<IActionResult> Login(AdminLogInViewModel viewModel)
        {
            if (!ModelState.IsValid)
                return View(viewModel);

            // Check if credentials is valid (and set auth cookie)
            if (!await _service.TryLoginAsync(viewModel))
            {
                // Show login error
                ModelState.AddModelError(nameof(AdminLogInViewModel.Username), "Invalid credentials");
                return View(viewModel);
            }

            // Redirect user
            if (string.IsNullOrWhiteSpace(viewModel.ReturnUrl))
            {
                //return RedirectToAction(nameof(HomeController.Index), "Home");
                return Redirect("/2hMjOzkAC0iayI1m6IeDhQ/Dashboard");
            }
            else
                return Redirect(viewModel.ReturnUrl);
        }
 public IActionResult Login(string returnUrl)
 {
     var model = new AdminLogInViewModel { ReturnUrl = returnUrl };
     return View(model);
 }