コード例 #1
0
        public rs Login(string username, string password, bool isrememberme, bool api = false)
        {
            rs     r;
            string _pass = aes.EncryptToString(password);
            User   logrs = base.GetList(u => u.Username == username && u.Password == _pass).FirstOrDefault();

            if (logrs != null)
            {
                if (logrs.UserStatusId != 1) //chwa active
                {
                    r = rs.F("Tài khoản này chưa hoạt động! " + logrs.UserStatus.Name);
                }
                else
                {
                    var logvm = new loginVM(logrs);
                    //set session
                    if (!api)
                    {
                        SSLogin(logvm);
                    }
                    //lưu đăng nhập
                    r = rs.T("Đăng nhập thành công, đang chuyển hướng!", logvm);
                }
            }
            else
            {
                r = rs.F("Tài khoản mật khẩu không chính xác");
            }
            return(r);
        }
コード例 #2
0
        public IActionResult Login(loginVM login)
        {
            try
            {
                User loginUser = userBLL.GetUserForLogin(login.UserName, login.Password);

                List <Claim> claims = new List <Claim>()
                {
                    new Claim(ClaimTypes.Name, loginUser.UserName),
                    new Claim(ClaimTypes.Role, loginUser.Role.ToString()),
                    new Claim(ClaimTypes.NameIdentifier, loginUser.ID.ToString())
                };
                ClaimsIdentity claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity));

                if (loginUser.Role == UserRole.Admin)
                {
                    //admin giriş
                    return(RedirectToAction("Index", "Management", new { area = "Admin" }));
                }
                else
                {
                    return(RedirectToAction("Profile", "User"));
                }
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                return(View());
            }
        }
コード例 #3
0
        public rs dang_nhap(DangNhapForm vm)
        {
            //var jwt = this.Request.Headers.GetValues("jwt").FirstOrDefault();


            rs r;

            rs logr = _userServ.Login(vm.CMND, vm.MatKhau, true, true);

            if (logr.r)
            {
                loginVM  user  = (loginVM)logr.v;
                DateTime exp   = DateTime.UtcNow.AddMonths(1);
                var      token = EncodeDecodeJWT.Encode(new Dictionary <string, object>
                {
                    { "uid", user.ID },
                    { "exp", exp.toJWTString() }
                });
                //đăng nhập thành công trả về token
                r = rs.T(logr.m, UserClient.map(user, token));
            }
            else
            {
                //tài khoản mật khẩu không chính xác
                r = rs.F(logr.m);
            }
            return(r);
        }
コード例 #4
0
        public async Task <ActionResult> Login(loginVM model)
        {
            // operation of login.....
            if (ModelState.IsValid)
            {
                try
                {
                    UserDTO dto = new UserDTO()
                    {
                        UserName = model.UserName,
                        Password = model.Password
                    };
                    long status = await mediator.Send(new LoginUserCommand()
                    {
                        User = dto, RemeberMe = model.RememberMe
                    });

                    if (status > 0)
                    {
                        //Response.ClearHeaders();
                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        ViewBag.ErrorMessage = "Incorrect User name or password.";
                    }
                }
                catch (Exception ex)
                {
                }
            }
            return(View());
        }
コード例 #5
0
        public ActionResult PLogin(Web.ViewModels.User.pLoginVM model)
        {
            rs r;

            if (ModelState.IsValid)
            {
                try
                {
                    SimpleAES __aes    = new SimpleAES();
                    string    __pw_aes = __aes.EncryptToString(model.Password);
                    var       _login   = __db.Users.FirstOrDefault(f => f.Username == model.Username && f.Password == __pw_aes);


                    if (_login != null)
                    {
                        DateTime exp   = DateTime.UtcNow.AddYears(1);
                        var      token = EncodeDecodeJWT.Encode(new Dictionary <string, object>
                        {
                            { "uid", _login.Id },
                            { "exp", exp.toJWTString() }
                        });
                        myCookies.Set("auth", token, exp);
                        loginVM log = new loginVM(_login);
                        MySsAuthUsers.setLogin(log);
                        r = rs.T("Ok!");
                    }
                    else
                    {
                        r = rs.F("Ok!");
                    }
                }
                catch (Exception ex)
                {
                    r = rs.F(ex.Message);
                }
            }
            else
            {
                r = rs.F("Lỗi nhập liệu!");
            }
            if (!r.r)
            {
                ModelState.AddModelError(string.Empty, r.m);
            }
            else
            {
                if (string.IsNullOrEmpty(model.ReturnUrl) == false)
                {
                    return(Redirect(myBase64EncodeDecode.DecodeBase64(model.ReturnUrl)));
                }
                else
                {
                    return(RedirectToAction("Profile", "User"));
                }
            }
            return(View(model));
        }
コード例 #6
0
        public ActionResult Login(string ReturnUrl = "", string role = "")
        {
            var vm = new loginVM();

            vm.ReturnUrl     = ReturnUrl;
            vm.role          = role;
            ViewBag.ip       = Request.UserHostAddress;
            ViewBag.__config = __confServ.GetConfigCache();
            return(View(vm));
        }
コード例 #7
0
        public void RefreshLogin()
        {
            var ss = MySsAuthUsers.GetAuth();

            if (ss != null)
            {
                var log   = base.FirstOrDefault(f => f.Id == ss.ID);
                var newss = new loginVM(log);
                MySsAuthUsers.setLogin(newss);
            }
        }
コード例 #8
0
        protected override void Initialize(System.Web.Routing.RequestContext requestContext)
        {
            loginVM logvm = MySsAuthUsers.GetAuth();

            if (logvm == null)
            {
                var jsonnn = myCookies.Get("auth");
                if (!string.IsNullOrWhiteSpace(jsonnn))
                {
                    try
                    {
                        rs rsdecode = EncodeDecodeJWT.Decode(jsonnn);
                        if (rsdecode.r && rsdecode.v != null)
                        {
                            JwtLoginModel user_cook = (JwtLoginModel)rsdecode.v;
                            var           log       = _userServ.GetEntry(user_cook.uid);
                            var           quanids   = log.UserQuans.Select(s => s.QuanID).ToList();
                            if (log.QuanDefaultId == null)
                            {
                                requestContext.HttpContext.Response.Clear();
                                requestContext.HttpContext.Response.Redirect(Url.Action("ChonQuan", "Quan", new{ area = "Admin" }));
                                requestContext.HttpContext.Response.End();
                            }
                            logvm = new loginVM(log);
                            MySsAuthUsers.setLogin(logvm);
                        }
                    }
                    catch (Exception ex)
                    {
                        //_userServ.SSLogOut();
                    }
                }
            }

            __langid  = myCookies.GetLangKey();
            __setting = _settingServ.GetSetting();
            __config  = _confServ.GetConfigCache();
            HitCounter();
            ViewBag.__config  = __config;
            ViewBag.__setting = __setting;
            VIEWSETTING __viewsetting = new VIEWSETTING();

            __viewsetting.__config  = __config;
            __viewsetting.__setting = __setting;
            __viewsetting.__login   = MySsAuthUsers.GetAuth();
            ViewBag.__viewsetting   = __viewsetting; //VIEWSETTING __vs = ViewBag.__viewsetting;
            base.Initialize(requestContext);
        }
コード例 #9
0
 public static UserClient map(loginVM data, string token)
 {
     return(new UserClient()
     {
         UserId = data.ID,
         CMND = data.Username,
         DiaChi = data.Address,
         DienThoai = data.Phone,
         HoTen = data.FullName,
         Email = data.Email,
         JWTToken = token,
         RoleId = data.RoleId,
         StatusId = data.UserStatusId,
         RoleName = data.RoleName,
         NgayDangKy = data.NgayDangKy.XuatDate()
     });
 }
コード例 #10
0
        public JsonResult mLoginProcess(Web.ViewModels.User.pLoginVM model)
        {
            rs r;

            if (ModelState.IsValid)
            {
                try
                {
                    SimpleAES __aes    = new SimpleAES();
                    string    __pw_aes = __aes.EncryptToString(model.Password);
                    var       _login   = __db.Users.FirstOrDefault(f => f.Username == model.Username && f.Password == __pw_aes);


                    if (_login != null)
                    {
                        DateTime exp   = DateTime.UtcNow.AddYears(1);
                        var      token = EncodeDecodeJWT.Encode(new Dictionary <string, object>
                        {
                            { "uid", _login.Id },
                            { "exp", exp.toJWTString() }
                        });
                        myCookies.Set("auth", token, exp);
                        loginVM log = new loginVM(_login);
                        MySsAuthUsers.setLogin(log);
                        r = rs.T("Ok!");
                    }
                    else
                    {
                        r = rs.F("Ok!");
                    }
                }
                catch (Exception ex)
                {
                    r = rs.F(ex.Message);
                }
            }
            else
            {
                r = rs.F("Lỗi nhập liệu!");
            }
            return(Json(r, JsonRequestBehavior.DenyGet));
        }
コード例 #11
0
        public JsonResult LoginProccess(loginVM vm)
        {
            rs logr = _userServ.Login(vm.Username, vm.Password, true);

            if (logr.r)
            {
                loginVM  user  = (loginVM)logr.v;
                DateTime exp   = DateTime.UtcNow.AddYears(1);
                var      token = EncodeDecodeJWT.Encode(new Dictionary <string, object>
                {
                    { "uid", user.ID },
                    { "exp", exp.toJWTString() }
                });
                HttpCookie authCookie = new HttpCookie("auth");
                authCookie.Value   = token;
                authCookie.Expires = DateTime.Now.AddMonths(1);
                Response.Cookies.Add(authCookie);
                //myCookies.Set("auth", token, exp);
            }

            string re;

            if (vm.role == "homepage")
            {
                re = Url.Action("Index", "Home", new { area = "" });
            }
            else
            {
                re = Url.Action("Index", "Home", new { area = "Admin" });
            }
            if (string.IsNullOrEmpty(vm.ReturnUrl) == false)
            {
                re = myBase64EncodeDecode.DecodeBase64(vm.ReturnUrl);
            }

            logr.v = re;
            return(Json(logr, JsonRequestBehavior.DenyGet));
        }
コード例 #12
0
        public async Task <IActionResult> LogIn(loginVM user, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                var res = await signInManager.PasswordSignInAsync(user.Email, user.Password, isPersistent : user.RememberMe, lockoutOnFailure : false);

                if (res.Succeeded)
                {
                    if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
                    {
                        return(LocalRedirect(returnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("index", "home"));
                    }
                }

                ModelState.AddModelError("", "Invalid Login Attempt");
            }

            return(View(user));
        }
コード例 #13
0
 public void SSLogin(loginVM user)
 {
     mySessions.Set(SysConsts.SS_login_user, user);
 }
コード例 #14
0
        // This method must be thread-safe since it is called by the thread-safe OnCacheAuthorization() method.

        /*
         * Phương thức này phải được thread-safe  vì nó được gọi bởi các phương thức Authorization cache thread-safe ()
         * cái đích của phương thức này là kiểm tra xem user đó đăng nhập đúng hay ko, có quền hay ko có quề
         * true: có quền
         * false: không có quên - > simple that!
         *
         */


        protected virtual bool AuthorizeCore(HttpContextBase httpContext)
        {
            this._userServ = DependencyResolver.Current.GetService <IUserRepository>();
            try
            {
                if (httpContext == null)
                {
                    throw new ArgumentNullException("httpContext");
                }

                loginVM logvm = MySsAuthUsers.GetAuth();
                if (logvm == null)
                {
                    var jsonnn = myCookies.Get("auth");
                    if (!string.IsNullOrWhiteSpace(jsonnn))
                    {
                        try
                        {
                            rs rsdecode = EncodeDecodeJWT.Decode(jsonnn);
                            if (rsdecode.r && rsdecode.v != null)
                            {
                                JwtLoginModel user_cook = (JwtLoginModel)rsdecode.v;
                                var           log       = _userServ.GetEntry(user_cook.uid);
                                logvm = new loginVM(log);
                                MySsAuthUsers.setLogin(logvm);
                            }
                        }
                        catch (Exception ex)
                        {
                            // _userServ.SSLogOut();
                            return(false);
                        }
                    }
                }
                if (logvm == null)
                {
                    return(false);
                }
                var user_login = _userServ.SSgetUserLoged();
                //Auth2. kiểm tra quền hạn theo username

                if (_usersSplit.Length > 0 &&
                    !_usersSplit.Contains(user_login.Username, StringComparer.OrdinalIgnoreCase))
                {
                    return(false);
                }

                if (_rolesSplit.Length > 0 && !_rolesSplit.Contains(user_login.RoleId.ToString()))
                {
                    return(false);
                }

                //Auth3. Kiểm tra quền hạn theo access role
                if (user_login.Username != "admin")
                {
                    if (_quyensSplit.Length > 0 && !IsInRole(user_login.ne_quyenIntArrStr, _quyensSplit))
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
コード例 #15
0
        public rs dang_ky(DangKyForm model)
        {
            rs r;

            //lay danh muc cap 1
            if (ModelState.IsValid)
            {
                SimpleAES __aes = new SimpleAES();

                vuong_cms_context __db = new vuong_cms_context();
                if (__db.Users.Any(a => a.Username == model.CMND))
                {
                    r = rs.F("Tên đăng nhập không hợp lệ hoặc đã tồn tại!");
                }
                else
                {
                    try
                    {
                        User entity = new User();
                        entity.Address = model.DiaChi;
                        entity.Phone   = model.CMND;

                        entity.Username = model.CMND;
                        entity.Fullname = model.HoTen;
                        entity.Email    = model.Email;


                        entity.Password = __aes.EncryptToString(model.MatKhau);

                        entity.UserStatusId = 1; //kích hoat
                        entity.RoleId       = 2; //cus

                        __db.Users.Add(entity);
                        __db.SaveChanges();


                        DateTime exp   = DateTime.UtcNow.AddYears(1);
                        var      token = EncodeDecodeJWT.Encode(new Dictionary <string, object>
                        {
                            { "uid", entity.Id },
                            { "exp", exp.toJWTString() }
                        });
                        var     getuser    = __db.Users.Find(entity.Id);
                        loginVM getuservm  = new loginVM(getuser);
                        var     userClient = UserClient.map(getuservm, token);
                        r = rs.T("Ok!", userClient);
                    }
                    catch (Exception exx)
                    {
                        r = rs.F("Lỗi máy chủ: " + exx.Message);
                    }
                }
            }
            else
            {
                //all error
                string messages = string.Join("; ", ModelState.Values
                                              .SelectMany(x => x.Errors)
                                              .Select(x => x.ErrorMessage).Distinct());
                r = rs.F(messages);
            }
            return(r);
        }
コード例 #16
0
 public static void setLogin(loginVM model)
 {
     mySessions.Set(SysConsts.SS_login_user, model);
 }
コード例 #17
0
 public void SSLogin(loginVM user)
 {
     _repo.SSLogin(user);
 }