예제 #1
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);
        }
예제 #2
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));
        }
예제 #3
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);
        }
예제 #4
0
            public static rs Check(HttpRequestMessage Request)
            {
                var headers = Request.Headers;

                if (headers.Contains("jwt"))
                {
                    string token    = headers.GetValues("jwt").First();
                    rs     rsdecode = EncodeDecodeJWT.Decode(token);
                    if (rsdecode.r && rsdecode.v != null)
                    {
                        return(rs.T("Đã đăng nhập", token));
                    }
                    return(rs.F("Vui lòng đăng nhập #1"));
                }
                else
                {
                    return(rs.F("Vui lòng đăng nhập #2"));
                }
            }
예제 #5
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));
        }
예제 #6
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));
        }
예제 #7
0
        public ActionResult PRegister(RegisterVM model)
        {
            rs        r;
            SimpleAES __aes = new SimpleAES();

            if (ModelState.IsValid)
            {
                if (__db.Users.Any(a => a.Username == model.Username))
                {
                    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.Address;
                        entity.Phone   = model.Phone;

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

                        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() }
                        });
                        myCookies.Set("auth", token, exp);
                        r = rs.T("Ok!");
                    }
                    catch (Exception exx)
                    {
                        r = rs.F(exx.Message);
                    }
                }
            }
            else
            {
                r = rs.F("Lỗi nhập liệu");
            }
            if (r.r)
            {
                return(RedirectToAction("Profile", "User"));
            }
            model.ddlProvince = __db.Province.Select(s => new SelectListItem()
            {
                Value = s.Id.ToString(),
                Text  = s.Name
            }).ToList();
            model.ddlHttt = __db.HTTTs.Select(s => new SelectListItem()
            {
                Value = s.Id.ToString(),
                Text  = s.Ten
            }).ToList();
            model.ddlXungDanh = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Text = "Anh", Value = "Anh"
                },
                new SelectListItem()
                {
                    Text = "Chị", Value = "Chị"
                }
            }.ToList();
            return(View(model));
        }
예제 #8
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);
        }