示例#1
0
        /// <summary>
        /// Login system by user info
        /// </summary>
        /// <param name="user">User info</param>
        /// <returns>Url to access</returns>
        public static string LoginByUser(ThongTinCanBo user, string reUrl = "")
        {
            ChucNangUngDungService _role = new ChucNangUngDungService();
            List <string>          roles = _role.ChucNangSuDung(user.CanBoId).ToList();

            HttpContext.Current.User.Identity.SetUserLogin(user, roles);
            string url = String.Empty;

            if (string.IsNullOrEmpty(reUrl))
            {
                url = MenuHelper.GetFirstPermissionUrlByUser(user);
            }
            else
            {
                url = reUrl;
            }
            return(url);
        }
示例#2
0
        public static void SetUserLogin(this IIdentity identity, ThongTinCanBo userInfo, List <string> lstRole)
        {
            HttpSessionState session = HttpContext.Current.Session;

            session.Add("_USERID", userInfo.CanBoId.ToString());
            session.Add("_USERNAME", userInfo.TenDangNhap);
            session.Add("_FULLNAME", userInfo.HoVaTen);
            session.Add("_DEPARTMENTID", userInfo.PhongBanHienTaiId.ToString());
            session.Add("_DEPARTMENTNAME", userInfo.TenPhongBan);
            session.Add("_POSITIONID", userInfo.ChucVuHienTaiId);
            session.Add("_POSITIONNAME", userInfo.TenChucVu);
            session.Add("_UNITID", userInfo.CoQuanHienTaiId.ToString());
            session.Add("_UNITNAME", userInfo.TenCoQuan.ToString());
            session.Add("_EMAIL", string.IsNullOrEmpty(userInfo.Email) ? "" : userInfo.Email.ToString());
            session.Add("_TEL", string.IsNullOrEmpty(userInfo.DienThoai) ? "" : userInfo.DienThoai.ToString());
            session.Add("_AVATAR", string.IsNullOrEmpty(userInfo.AnhDaiDien) ? "" : userInfo.AnhDaiDien.ToString());
            session.Add("_ROLES", lstRole);
            session.Timeout = 7200;
        }
 public static bool CheckAccessByUser(SiteMapNode node, ThongTinCanBo user)
 {
     if (user != null)
     {
         if (node.Roles.Count == 0)
         {
             return(true);
         }
         for (int i = 0; i < node.Roles.Count; i++)
         {
             if (node.Roles[i] != null)
             {
                 string role = node.Roles[i].ToString();
                 return(MembershipExtension.CheckUserRole(role));
             }
         }
     }
     return(false);
 }
        public ThongTinCanBo checkCookie()
        {
            ThongTinCanBo user = null;
            string        userName = string.Empty, passWord = string.Empty;

            if (Request.Cookies["username"] != null)
            {
                userName = Request.Cookies["username"].Value;
            }
            if (Request.Cookies["password"] != null)
            {
                passWord = Request.Cookies["password"].Value;
            }
            if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(passWord))
            {
                user = new ThongTinCanBo {
                    TenDangNhap = userName, MatKhau = passWord
                }
            }
            ;
            return(user);
        }
        public ActionResult Login(string reUrl)
        {
            ViewBag.reUrl = reUrl;
            ThongTinCanBo userCookie = checkCookie();

            if (userCookie != null)
            {
                CanBoService  _user = new CanBoService();
                ThongTinCanBo user  = _user.GetUserLogin(userCookie.TenDangNhap, userCookie.MatKhau);
                if (user != null)
                {
                    // login system
                    string url = MembershipExtension.LoginByUser(user, reUrl);

                    if (!string.IsNullOrEmpty(url))
                    {
                        return(Redirect(url));
                    }
                }
            }
            return(View("Login2"));
        }
        public ActionResult Login(string txtUserName, string txtPassword, bool?Remember, string reUrl)
        {
            if (string.IsNullOrEmpty(txtUserName) || string.IsNullOrEmpty(txtPassword))
            {
                ModelState.AddModelError("", "Thiếu thông tin tài khoản hoặc mặt khẩu");
                return(View());
            }

            CanBoService  _user = new CanBoService();
            ThongTinCanBo user  = _user.GetUserLogin(txtUserName, EncryptHelper.EncryptMD5(txtPassword));

            if (user != null)
            {
                // save username and password into cookie
                if (Remember != null && Remember == true)
                {
                    setCookie(txtUserName, EncryptHelper.EncryptMD5(txtPassword));
                }

                // login system
                string url = MembershipExtension.LoginByUser(user, reUrl);

                if (!string.IsNullOrEmpty(url))
                {
                    return(Redirect(url));
                }
                else
                {
                    ModelState.AddModelError("", "Tài khoản chưa được phân quyền");
                }
                return(View());
            }
            else
            {
                ModelState.AddModelError("", "Tên đăng nhập hoặc mật khẩu không đúng");
            }
            return(View("Login2"));
        }
 public static string GetFirstPermissionUrlByUser(ThongTinCanBo user)
 {
     foreach (SiteMapNode node in SiteMap.RootNode.ChildNodes)
     {
         if (node.ChildNodes.Count == 0)
         {
             if (CheckAccessByUser(node, user))
             {
                 return(node.Url);
             }
         }
         else
         {
             foreach (SiteMapNode childNode in node.ChildNodes)
             {
                 if (CheckAccessByUser(childNode, user))
                 {
                     return(childNode.Url);
                 }
             }
         }
     }
     return(string.Empty);
 }
示例#8
0
        public static ThongTinCanBo GetUserLogin(this IIdentity identity)
        {
            HttpSessionState session = HttpContext.Current.Session;
            var canbo = new ThongTinCanBo();

            if (session != null)
            {
                if (session["_USERID"] != null)
                {
                    canbo.CanBoId = Convert.ToInt32(session["_USERID"]);
                }
                else
                {
                    if (!HttpContext.Current.Response.IsRequestBeingRedirected)
                    {
                        HttpContext.Current.Response.Redirect("~/Auth/Login");
                    }
                }
                if (session["_USERNAME"] != null)
                {
                    canbo.TenDangNhap = session["_USERNAME"].ToString();
                }
                if (session["_FULLNAME"] != null)
                {
                    canbo.HoVaTen = session["_FULLNAME"].ToString();
                }
                if (session["_DEPARTMENTID"] != null)
                {
                    canbo.PhongBanHienTaiId = Convert.ToInt32(session["_DEPARTMENTID"]);
                }
                if (session["_DEPARTMENTNAME"] != null)
                {
                    canbo.TenPhongBan = session["_DEPARTMENTNAME"].ToString();
                }
                if (session["_POSITIONID"] != null)
                {
                    canbo.ChucVuHienTaiId = Convert.ToInt32(session["_POSITIONID"].ToString());
                }
                if (session["_POSITIONNAME"] != null)
                {
                    canbo.TenChucVu = session["_POSITIONNAME"].ToString();
                }
                if (session["_UNITID"] != null)
                {
                    canbo.CoQuanHienTaiId = Convert.ToInt32(session["_UNITID"].ToString());
                }
                if (session["_UNITNAME"] != null)
                {
                    canbo.TenCoQuan = session["_UNITNAME"].ToString();
                }
                if (session["_EMAIL"] != null)
                {
                    canbo.Email = session["_EMAIL"].ToString();
                }
                if (session["_TEL"] != null)
                {
                    canbo.DienThoai = session["_TEL"].ToString();
                }
                if (session["_AVATAR"] != null)
                {
                    canbo.AnhDaiDien = session["_AVATAR"].ToString();
                }
                if (session["_ROLES"] != null)
                {
                    canbo.DsChucNang = (List <string>)session["_ROLES"];
                }
                return(canbo);
            }
            else
            {
                //FormsAuthentication.SignOut();
                HttpContext.Current.Response.Redirect("~/Auth/Login", true);
                return(canbo);
            }
        }