コード例 #1
0
        public async Task <ActionResult> AdminLogIn(LoginViewModelAdmin loginViewModelAdmin)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Şifrə və ya Email düzgün deyil");
                return(View(loginViewModelAdmin));
            }

            ApplicationUser user = await _userManager.FindByEmailAsync(loginViewModelAdmin.Email);

            if (user == null)
            {
                ModelState.AddModelError("", "Bu adlı istifadəçi yoxdur");
                return(View(loginViewModelAdmin));
            }

            Microsoft.AspNetCore.Identity.SignInResult result = await _signInManager.PasswordSignInAsync(user, loginViewModelAdmin.Password, true, true);

            if (!result.Succeeded)
            {
                ModelState.AddModelError("", "Şifrə və ya Email düzgün deyil");
                return(View(loginViewModelAdmin));
            }

            return(RedirectToAction("Index", "Dashboard"));
        }
コード例 #2
0
        public ActionResult Login(LoginViewModelAdmin model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var emp = db.Employees.Where(e => e.UserName.Equals(model.UserName) && e.Password.Equals(model.Password)).SingleOrDefault();

            if (emp != null)
            {
                if (emp.Status == true)
                {
                    FormsAuthentication.SetAuthCookie(emp.UserName, true);
                    return(Json(new
                    {
                        status = true,
                        url = Url.Action("Index", "Home", new { area = "Admin" })
                    }));
                }
                return(Json(new
                {
                    status = false,
                    message = Constants.ERR_LOCK_CREDENTIAL
                }));
            }
            else
            {
                return(Json(new
                {
                    status = false,
                    message = Constants.ERR_WRONG_CREDENTIAL
                }));
            }
        }
コード例 #3
0
        public async Task <IActionResult> Authen(LoginViewModelAdmin model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (string.IsNullOrEmpty(model.UserName))
                    {
                        return(new ObjectResult(new GenericResult(false, "Chưa nhập tài khoản")));
                    }
                    if (string.IsNullOrEmpty(model.Password))
                    {
                        return(new ObjectResult(new GenericResult(false, "Chưa nhập mật khẩu")));
                    }

                    var user = await _userManager.FindByNameAsync(model.UserName);

                    if (user == null)
                    {
                        _logger.LogWarning("Không tìm thấy tài khoản.");
                        return(new ObjectResult(new GenericResult(false, "Không tìm thấy tài khoản")));
                    }

                    if (user.Status == Status.InActive)
                    {
                        _logger.LogWarning("Tài khoản đã bị khóa.");
                        return(new ObjectResult(new GenericResult(false, "Tài khoản đã bị khoá")));
                    }


                    // This doesn't count login failures towards account lockout
                    // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                    var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, lockoutOnFailure : false);

                    if (result.Succeeded)
                    {
                        //_cache.Remove("ListMenu");
                        _logger.LogInformation("User logged in.");
                        return(new OkObjectResult(new GenericResult(true)));
                    }
                    if (result.IsLockedOut)
                    {
                        _logger.LogWarning("User account locked out.");
                        return(new ObjectResult(new GenericResult(false, "Tài khoản đã bị khoá")));
                    }
                    else
                    {
                        return(new ObjectResult(new GenericResult(false, "Tên đăng nhập hoặc mật khẩu không đúng")));
                    }
                }

                // If we got this far, something failed, redisplay form
                return(new ObjectResult(new GenericResult(false, model)));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(new ObjectResult(new GenericResult(false, model)));
            }
        }
コード例 #4
0
        public async Task <JsonResult> Login(LoginViewModelAdmin account)
        {
            var result = await SignInManager.PasswordSignInAsync(account.Email, account.Password, account.RememberMe, shouldLockout : true);

            switch (result)
            {
            case SignInStatus.Success:
                var temp = await SignInManager.UserManager.FindByEmailAsync(account.Email);

                var CheckUserCondition = UserManager.GetRoles(temp.Id).Select(x => x);
                if (CheckUserCondition.Where(x => !x.StartsWith("Customer")).Count() > 0)
                {
                    return(Json(new
                    {
                        Status = 0,
                        Error = "Done",
                        ReturnUrl = account.ReturnLink
                    }));
                }
                else
                {
                    SignInManager.AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                    return(Json(new
                    {
                        Status = 4,
                        Error = "Không có quyền đăng nhập vào đây!",
                    }));
                }

            case SignInStatus.LockedOut:
                SignInManager.AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                return(Json(new
                {
                    Status = 1,
                    Error = "Tài khoản bị khóa"
                }));

            case SignInStatus.RequiresVerification:
                return(Json(new
                {
                    Status = 2,
                    Error = "NeedVerification"
                }));

            case SignInStatus.Failure:
            default:
                SignInManager.AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                return(Json(new
                {
                    Status = 3,
                    Error = "Sai tên đang nhập hoặc mật khẩu"
                }));
            }
        }
コード例 #5
0
        public async Task <ActionResult> ViewPartialLoginAdmin([Bind(Include = "Usuario,Password")] LoginViewModelAdmin model)
        {
            //Valido los campos del modelo
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            //Valido el capcha

            if (!this.IsCaptchaValid("Captcha is not valid"))
            {
                ModelState.AddModelError(string.Empty, "Error: captcha no es válido.");
            }
            //si el captcha es valido
            else
            {
                try
                {
                    var Password       = Crypto.SHA256(model.Password);
                    var salt           = Crypto.GenerateSalt();
                    var hashedPassword = Crypto.HashPassword(salt + Password);

                    //Ejecuto los valores
                    var response = db.SP_Ingreso_Usuario_Administrador(model.Usuario, model.Password).FirstOrDefault();
                    //
                    await db.SaveChangesAsync();

                    //
                    if (response != null && response.codigo.Equals(200))
                    {
                        var obj = db.Web_Administrador.Where(u => u.usuario.Equals(model.Usuario)).FirstOrDefault();
                        /**/
                        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, obj.administrador_id.ToString(), DateTime.Now, DateTime.Now.AddMinutes(15), true, obj.FK_web_administrador_rol.ToString());
                        String     Encrypt = FormsAuthentication.Encrypt(ticket);
                        HttpCookie cookie  = new HttpCookie("TIKECTCOOKIE", Encrypt);

                        //Pongo en cookie el rol del usuario para traer los datos del tablero de control
                        HttpCookie cookierol = new HttpCookie("fkrol", obj.FK_web_administrador_rol.ToString());

                        Response.Cookies.Add(cookierol);
                        Response.Cookies.Add(cookie);
                        /**/

                        return(RedirectToAction("Index", "Tablero"));
                    }
                    else if (response.codigo != 200)
                    {
                        ModelState.AddModelError(string.Empty, response.mensaje);
                    }
                    else
                    {
                        //Limpio campos
                        ModelState.Clear();
                        //envio un mensaje al usuario
                        ModelState.AddModelError(string.Empty, "La plataforma no esta respondiendo a su solicitud, por favor intente mas tarde");
                    }
                }
                catch (Exception e)
                {
                    //envio error a la api logs errores
                    //y envio a la carpeta logs
                    APIS.LogsController log = new APIS.LogsController(e.ToString());
                    log.createFolder();
                    //Limpio campos
                    ModelState.Clear();
                    //envio error mensaje al usuario
                    ModelState.AddModelError(string.Empty, "Estamos presentando dificultades en el momento por favor intente mas tarde ");
                }
            }//fin else captcha

            //retorno la vista en caso de que no se efectue el regsitro
            return(View("IndexAdmin", model));
        }