Exemplo n.º 1
0
        public ActionResult Login(AdminLoginVM loginVM, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            if (adminService.IsExist(loginVM.Adm_Account, loginVM.Adm_Password))
            {
                HttpContext.Session.Clear();
                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
                                                                                 "Admin",
                                                                                 DateTime.Now,
                                                                                 DateTime.Now.AddHours(24),
                                                                                 false,
                                                                                 "Admin"
                                                                                 );
                //Encrypt cookie
                string enTicket = FormsAuthentication.Encrypt(ticket);
                Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, enTicket));

                string decodedUrl = "";
                if (!string.IsNullOrEmpty(returnUrl))
                {
                    decodedUrl = Server.UrlDecode(returnUrl);
                }

                return(RedirectToAction("index"));
            }
            else
            {
                ModelState.AddModelError("", "帳號或密碼錯誤");
                return(View(loginVM));
            }
        }
Exemplo n.º 2
0
        private async Task LoginAdmin()
        {
            AdminLoginVM adminLoginVM = new AdminLoginVM()
            {
                Username = TbUsername.Text,
                Password = TbPassword.Password
            };

            bool access = await adminApi.AuthenticateAdmin(adminLoginVM);

            if (access)
            {
                AdminMainMenu adminMainMenu = new AdminMainMenu();
                await adminMainMenu.SetAdminLoggedIn(adminLoginVM);

                adminMainMenu.Show();
            }
            else
            {
                MessageBox.Show("Unsuccessfull login!");

                Login loginWindow = new Login(user);
                loginWindow.TextBlockWelcome.Text       = "Welcome Admin";
                loginWindow.TextBlockLoginRegister.Text = "Login";
                loginWindow.Show();
            }
        }
Exemplo n.º 3
0
        public async Task SetAdminLoggedIn(AdminLoginVM adminLoginVM)
        {
            Admin admin = await adminApi.GetAdminByUidPwd(adminLoginVM);

            LblFirstName.Text = admin.FirstName;
            LblLastName.Text  = admin.LastName;
        }
Exemplo n.º 4
0
        public ActionResult Autenticar(AdminLoginVM vm)
        {
            if (ModelState.IsValid)
            {
                Login(_domain.Login(vm, Session.SessionID));
                return(RedirectToAction("Index", "Home"));
            }

            this.AlertError("Atenção!", "Não foi possível autenticar");
            return(View(vm));
        }
Exemplo n.º 5
0
        public ActionResult AdminLogin(AdminLoginVM adminVM)
        {
            User admin = _userService.GetUserByLogin(adminVM.UserName, adminVM.Password);

            if (admin != null)
            {
                Session["admin"]      = admin;
                Session["categories"] = _categoryService.GetAll();
                return(RedirectToAction("Home", "Admin"));
            }
            ViewBag.result = "Bilgilerinizi Kontrol Edip Tekrar Deneyiniz.";
            return(View());
        }
Exemplo n.º 6
0
        public async Task <bool> AuthenticateAdmin(AdminLoginVM adminLoginVM)
        {
            StringContent       content  = GetStringContent(adminLoginVM);
            HttpClient          request  = new HttpClient();
            HttpResponseMessage response = await request.PostAsync($"{ API_URL }/AuthenticateAdmin", content);

            if (response.IsSuccessStatusCode)
            {
                bool result = await response.Content.ReadAsAsync <bool>();

                return(result);
            }
            return(false);
        }
Exemplo n.º 7
0
        public async Task <Admin> GetAdminByUidPwd(AdminLoginVM adminLoginVM)
        {
            StringContent       content  = GetStringContent(adminLoginVM);
            HttpClient          request  = new HttpClient();
            HttpResponseMessage response = await request.PostAsync($"{ API_URL }/GetAdminByUidPwd", content);

            if (response.IsSuccessStatusCode)
            {
                Admin admin = await response.Content.ReadAsAsync <Admin>();

                return(admin);
            }
            return(new Admin());
        }
Exemplo n.º 8
0
        public async Task <IActionResult> Index(AdminLoginVM model)
        {
            if (ModelState.IsValid)
            {
                var adminuser = _context.AdminUsers.FirstOrDefault(x => x.Email == model.EMail && x.Password == model.Password);


                if (adminuser != null)
                {
                    var claims = new List <Claim>
                    {
                        new Claim(ClaimTypes.Name, model.EMail),
                        new Claim(ClaimTypes.Name, adminuser.Name),
                        new Claim(ClaimTypes.UserData, "Admin")

                        //new Claim(ClaimTypes.Role,model.Roles)
                    };
                    var             userIdentity = new ClaimsIdentity(claims, "login");
                    ClaimsPrincipal principal    = new ClaimsPrincipal(userIdentity);
                    await HttpContext.SignInAsync(principal);

                    adminuser.LastLoginDate = DateTime.Now;
                    _context.SaveChanges();

                    if (HttpContext.User.Identity.IsAuthenticated)
                    {
                        if (HttpContext.User.Claims.ToArray()[2].Value == "Admin")
                        {
                            TempData["UserID"]   = HttpContext.User.Claims.ToArray()[0].Value;
                            TempData["UserName"] = HttpContext.User.Claims.ToArray()[1].Value;
                        }
                    }

                    return(RedirectToAction("Home", "AdminArea"));
                }
                else
                {
                    ViewBag.error = "E-Mail or Password wrong!";
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
Exemplo n.º 9
0
        public Admin GetAdminByUidPwd(AdminLoginVM adminLoginVM)
        {
            IEnumerable <Admin> admins = unitOfWork.Admins.GetAll();
            string inputPasswordHash   = string.Empty;

            foreach (Admin admin in admins)
            {
                if (admin.Username == adminLoginVM.Username)
                {
                    inputPasswordHash = CreateHashedPasswordWithSaltFromDb(adminLoginVM.Password, admin.PasswordSalt);
                }
            }

            foreach (Admin admin in admins)
            {
                if (admin.Username == adminLoginVM.Username && admin.PasswordHash == inputPasswordHash)
                {
                    return(admin);
                }
            }
            return(new Admin());
        }
Exemplo n.º 10
0
        public bool AuthenticateAdmin(AdminLoginVM adminLoginVM)
        {
            IEnumerable <Admin> admins = unitOfWork.Admins.GetAll();
            string inputPasswordHash   = string.Empty;

            foreach (Admin admin in admins)
            {
                if (admin.Username == adminLoginVM.Username)
                {
                    inputPasswordHash = CreateHashedPasswordWithSaltFromDb(adminLoginVM.Password, admin.PasswordSalt);
                }
            }

            foreach (Admin admin in admins)
            {
                if (admin.Username == adminLoginVM.Username && admin.PasswordHash == inputPasswordHash)
                {
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 11
0
        public ActionResult Index(AdminLoginVM model)
        {
            model.Password = Encryptor.MD5Hash(model.Password);
            var          response = Request["g-recaptcha-response"];
            const string secret   = "6LeKKSMUAAAAAC4s-mflMky8XggtaatxKcx-cQ1y";

            var client = new WebClient();
            var reply  =
                client.DownloadString(
                    string.Format("https://www.google.com/recaptcha/api/siteverify?secret={0}&response={1}", secret, response));

            var captchaResponse = JsonConvert.DeserializeObject <CaptchaResponse>(reply);

            if (ModelState.IsValid)
            {
                bool      adminVarMi = db.AdminUsers.Any(q => q.email.TrimStart().ToLower() == model.EMail.TrimStart().ToLower() && q.password == model.Password);
                AdminUser admin      = db.AdminUsers.FirstOrDefault(q => q.email.TrimStart() == model.EMail.TrimStart());

                bool adminn = db.AdminUsers.Any(q => q.email.TrimStart().ToLower() != model.EMail.TrimStart().ToLower());

                if (adminVarMi && admin.Rejcount < 2)
                {
                    FormsAuthentication.SetAuthCookie(model.EMail, true);
                    admin.Rejcount      = 0;
                    admin.lastlogindate = DateTime.Now;
                    db.SaveChanges();
                    return(RedirectToAction("Index", "AdminHome"));
                }
                else if (adminn)
                {
                    ViewBag.IslemDurum = EnumIslemDurum.AdminLoginError;
                    return(View());
                }
                else if (!adminVarMi && admin.Rejcount < 2)
                {
                    admin.Rejcount++;
                    db.SaveChanges();
                    ViewBag.IslemDurum = EnumIslemDurum.AdminLoginError;
                    return(View());
                }

                else
                {
                    ViewBag.IslemDurum = EnumIslemDurum.ThreeTimesWrong;
                    if (!captchaResponse.Success)
                    {
                        TempData["Message"] = "Lütfen güvenliği doğrulayınız.";
                    }
                    else
                    {
                        TempData["Message"] = "Güvenlik başarıyla doğrulanmıştır.";
                        if (adminVarMi)
                        {
                            FormsAuthentication.SetAuthCookie(model.EMail, true);
                            admin.Rejcount      = 0;
                            admin.lastlogindate = DateTime.Now;
                            db.SaveChanges();
                            return(RedirectToAction("Index", "AdminHome"));
                        }
                        else
                        {
                            ViewBag.IslemDurum = EnumIslemDurum.ThreeTimesWrong;
                            return(View());
                        }
                    }
                }
            }
            return(View());
        }