Beispiel #1
0
        protected void Button1_Click(object sender, EventArgs e)
        {
            var loginFrom = ConfigurationManager.AppSettings["loginFrom"];
            var token     = BaseEncode.GetMd5Str(TextBox1.Text.Trim() + DateTime.Now.ToString("yyyyMMdd") + loginFrom);

            Response.Redirect(string.Format("/Login/SSO?token={0}&loginid={1}", token, TextBox1.Text.Trim()));
        }
Beispiel #2
0
 public JsonResult UpdateUserPwd(int id)
 {
     try
     {
         Sys_User model = userBL.Get(id);
         model.Password = BaseEncode.GetMd5Str("123456");
         userBL.Update(model);
         return(Json(1, JsonRequestBehavior.AllowGet));
     }
     catch
     {
         return(Json(0, JsonRequestBehavior.AllowGet));
     }
 }
Beispiel #3
0
 /// <summary>
 ///     记住密码
 /// </summary>
 /// <param name="username"></param>
 /// <param name="password"></param>
 private void RememberPwd(string username, string password)
 {
     if (Request.Form["rememberPwd"] == "1")
     {
         var newCookie = new HttpCookie("LiXin_User");
         newCookie.Values["username"] = HttpUtility.UrlEncode(username);
         newCookie.Values["password"] = BaseEncode.EncodingForString(password); //加密后的密码放到COOKIE内
         newCookie.Expires            = DateTime.Now.AddDays(15);
         Response.AppendCookie(newCookie);
     }
     else
     {
         HttpCookie cookie = Request.Cookies["LiXin_User"];
         if (cookie != null)
         {
             cookie.Expires = DateTime.Now.AddDays(-2);
             Response.Cookies.Set(cookie);
         }
     }
 }
Beispiel #4
0
        /// <summary>
        /// 单点登录
        /// </summary>
        /// <param name="loginid">用户名</param>
        /// <param name="token">用户名+当天时间(yyyyMMdd)+systemid 经过MD5加密</param>
        public void SSO(string loginid, string token)
        {
            string loginFrom    = ConfigurationManager.AppSettings["loginFrom"];
            string loginFailUrl = ConfigurationManager.AppSettings["loginFailUrl"];

            try
            {
                var test = BaseEncode.GetMd5Str(loginid + DateTime.Now.ToString("yyyyMMdd") + loginFrom);
                if (token.ToLower() == test.ToLower())
                {
                    Sys_User user = userBL.GetUserByLoginId(loginid);
                    if (user != null)
                    {
                        //记录最后一次登录时间
                        user.LastLoginTime        = DateTime.Now;
                        user.PasswordFailureCount = 0;
                        user.PasswordFailureTime  = null;
                        userBL.Update(user);
                        //初始化用户权限
                        UserRights  = rightBL.GetRightByUserId(user.UserId);
                        CurrentUser = user;
                        FormsAuthentication.SetAuthCookie(user.Username, true);
                        LoginLog("用户登录", CurrentUser.UserId, HttpContext);
                        Response.Redirect("/Home/Index", true);
                    }
                    else
                    {
                        Response.Redirect(loginFailUrl, true);
                    }
                }
                else
                {
                    Response.Redirect(loginFailUrl, true);
                }
            }
            catch
            {
                Response.Redirect(loginFailUrl, true);
            }
        }
Beispiel #5
0
        /// <summary>
        ///     Login
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            Session.Clear();
            string backUrl = "";

            if (Session["backUrl"] != null)
            {
                backUrl = Session["backUrl"].ToString();
            }
            if (!string.IsNullOrEmpty(Request.QueryString["backUrl"]))
            {
                backUrl = Request.QueryString["backUrl"];
            }
            ViewBag.backUrl = backUrl;

            #region verification code

            string loginRequireValCode = LoginConfig.LoginConfigurations.IsShowLoginVaildateCode ? "true" : "false";
            ViewBag.loginReqVCode = loginRequireValCode;

            #endregion

            #region remember password

            ViewBag.userName = "";
            ViewBag.password = "";
            ViewBag.remember = 0;
            HttpCookie httpCookie = Request.Cookies["LiXin_User"];
            if (httpCookie != null)
            {
                ViewBag.remember = 1;
                ViewBag.userName = HttpUtility.UrlDecode(httpCookie["username"]);
                ViewBag.password = BaseEncode.DecodingForString(httpCookie["password"]);
            }

            #endregion

            return(View());
        }
Beispiel #6
0
        /// <summary>
        ///     获取用户excel表中的数据
        /// </summary>
        /// <param name="excelPath">Excel路径</param>
        /// <param name="errorStr">错误信息</param>
        /// <returns>返回User数据列表</returns>
        private List <Sys_User> GetExcelUserContent(string excelPath, ref string userTempID, ref string userReId, ref string errorStr, ref bool type, ref string userNumberId)
        {
            var listUser = new List <Sys_User>();
            var err      = "";

            try
            {
                string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelPath + ";Extended Properties=Excel 8.0;";
                var    tmpcn   = new OleDbConnection(strConn);
                tmpcn.Open(); //打开文件,读取里面的内容
                int flag = 0;
                try
                {
                    //打开文件,读取里面的工作表
                    DataTable dt = tmpcn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                    foreach (DataRow drr in dt.Rows)
                    {
                        string strExcelTableName = drr["TABLE_NAME"].ToString(); //EXCEL中的工作表名
                        if (strExcelTableName == "模板$")
                        {
                            flag = 1;
                            var tmpda = new OleDbDataAdapter("select * from [" + strExcelTableName + "]", tmpcn);
                            var ds    = new DataSet();
                            tmpda.Fill(ds);

                            bool formworkflag = true;

                            #region 判断Excel是否正确

                            if (ds.Tables[0].Columns.Count == 13)
                            {
                                if (!ds.Tables[0].Columns[0].ToString().Contains("工号"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[1].ToString().Contains("中文名"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[2].ToString().Contains("性别"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[3].ToString().Contains("出生日期"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[4].ToString().Contains("电子邮件"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[5].ToString().Contains("电话"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[6].ToString().Contains("传真"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[7].ToString().Contains("职称"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[8].ToString().Contains("加入公司日期"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[9].ToString().Contains("部门代码"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[10].ToString().Contains("职务代码"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[11].ToString().Contains("英文名"))
                                {
                                    formworkflag = false;
                                }
                                if (!ds.Tables[0].Columns[12].ToString().Contains("状态"))
                                {
                                    formworkflag = false;
                                }
                            }
                            else
                            {
                                formworkflag = false;
                            }

                            #endregion

                            if (formworkflag)
                            {
                                //Excel正确
                                int i       = 1;
                                var strUser = new List <string>();
                                foreach (DataRow dr in ds.Tables[0].Rows)
                                {
                                    if (!(string.IsNullOrWhiteSpace(dr[0].ToString()) || string.IsNullOrWhiteSpace(dr[1].ToString()) || string.IsNullOrWhiteSpace(dr[12].ToString())))
                                    {
                                        if (Regex.IsMatch(dr[0].ToString(), "^[a-zA-Z0-9_]{6,20}$"))
                                        {
                                            var result = VerifyUser(dr[0].ToString(), dr[4].ToString());
                                            if (result == 0)
                                            {
                                                if (!strUser.Contains(dr[0].ToString()))
                                                {
                                                    var model = new Sys_User();
                                                    model.JobNum   = dr[0].ToString();
                                                    model.Username = model.JobNum;
                                                    model.Password = BaseEncode.GetMd5Str("123456");
                                                    model.Realname = dr[1].ToString();
                                                    model.Sex      = 0;
                                                    if (dr[2].ToString() == "女")
                                                    {
                                                        model.Sex = 1;
                                                    }
                                                    model.Email     = dr[4].ToString();
                                                    model.Telephone = dr[5].ToString();
                                                    model.JobTitle  = dr[7].ToString();
                                                    if (!string.IsNullOrWhiteSpace(dr[8].ToString()))
                                                    {
                                                        model.JoinDate = dr[8].StringToDate(2);
                                                    }
                                                    model.DeptCode = dr[9].ToString();
                                                    model.PostCode = dr[10].ToString();
                                                    if (string.IsNullOrWhiteSpace(dr[11].ToString()))
                                                    {
                                                        model.Ename = model.Realname;
                                                    }
                                                    else
                                                    {
                                                        model.Ename = dr[11].ToString();
                                                    }
                                                    model.Status = 0;
                                                    if (dr[12].ToString().ToUpper() == "冻结")
                                                    {
                                                        model.Status = 1;
                                                    }
                                                    listUser.Add(model);
                                                    strUser.Add(model.Username);
                                                }
                                                else
                                                {
                                                    if (userReId != "")
                                                    {
                                                        userReId = userReId + "," + dr[0];
                                                    }
                                                    else
                                                    {
                                                        userReId = dr[0].ToString();
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                if (err != "")
                                                {
                                                    err = err + "," + i;
                                                }
                                                else
                                                {
                                                    err = i.ToString();
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (userNumberId != "")
                                            {
                                                userNumberId = userNumberId + "," + dr[0];
                                            }
                                            else
                                            {
                                                userNumberId = dr[0].ToString();
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (userTempID != "")
                                        {
                                            userTempID = userTempID + "," + i;
                                        }
                                        else
                                        {
                                            userTempID = i.ToString();
                                        }
                                    }
                                    i++;
                                }
                            }
                            else
                            {
                                errorStr = errorStr + "<br /> 用户Excel不正确,请联系管理员以便获得帮助!";
                                type     = false;
                                break;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    errorStr = errorStr + "<br />" + ex.Message;
                    type     = false;
                }
                finally
                {
                    tmpcn.Close();
                }
                if (flag == 0)
                {
                    errorStr = errorStr + "<br />用户Excel不正确,请联系管理员以便获得帮助!";
                    type     = false;
                }
            }
            catch (Exception e)
            {
                errorStr = errorStr + "<br />" + e.Message;
                type     = false;
            }
            if (type && (!string.IsNullOrWhiteSpace(err)))
            {
                errorStr = errorStr + "<br /> Excel中第 " + err + " 条数据,工号、邮箱存在异常,没有添加成功!";
            }
            return(listUser);
        }
Beispiel #7
0
        public JsonResult SaveUser(int userId, string jobNum, string realName, string email, int sex, int deptId,
                                   string deptName, int postId, string postName)
        {
            try
            {
                if (userBL.Exists(jobNum.ReplaceSingleSql(), jobNum.ReplaceSingleSql(), userId))
                {
                    return(Json(new
                    {
                        result = 0,
                        content = "工号重复!"
                    }, JsonRequestBehavior.AllowGet));
                }
                var model = new Sys_User();
                if (userId != 0)
                {
                    model = userBL.Get(userId);
                }
                model.JobNum   = jobNum;
                model.Username = jobNum;
                model.Password = BaseEncode.GetMd5Str("123456");
                model.Realname = realName;
                model.Ename    = realName;
                model.Email    = email;
                model.Sex      = sex;
                model.PostId   = -1;
                model.DeptId   = -1;
                var postTemp = AllPosts.Find(p => p.PostId == postId);
                if (postTemp != null)
                {
                    model.PostId   = postId;
                    model.PostCode = postTemp.PostCode;
                    model.PostName = postTemp.PostName;
                    //model.PostLevel = postTemp.PostLevel;
                }
                var deptTemp = AllDepartments.Find(p => p.DepartmentId == deptId);
                if (deptTemp != null)
                {
                    model.DeptId   = deptId;
                    model.DeptCode = deptTemp.DeptCode;
                    model.DeptName = deptTemp.DeptName;
                }
                if (userId == 0)
                {
                    userBL.Add(model);
                }
                else
                {
                    userBL.Update(model);
                }

                return(Json(new
                {
                    result = 1,
                    content = "保存成功!"
                }, JsonRequestBehavior.AllowGet));
            }
            catch
            {
                return(Json(new
                {
                    result = 0,
                    content = "保存失败!"
                }, JsonRequestBehavior.AllowGet));
            }
        }
Beispiel #8
0
        private JsonResult CheckLogin(string username, string password, string code, string backUrl, int rememberPwd)
        {
            try
            {
                #region 登录验证

                #region 判断超级管理员

                if (username.Equals(LoginConfig.LoginConfigurations.SuperAdmin, StringComparison.OrdinalIgnoreCase))
                {
                    if (password.Encrypt().Equals(LoginConfig.LoginConfigurations.SuperPassword))
                    {
                        InitSuperAdmin();
                        LoginLog("超级管理员用户登录", 0, HttpContext);
                        return(Json(new { result = 0, url = backUrl }, JsonRequestBehavior.DenyGet));
                    }
                }

                #endregion

                #region 判断用户名与密码是否匹配

                Sys_User user = userBL.GetUserByName(username);
                if (user == null)
                {
                    return(LoginJson(2, LoginLanguage.Login_CheckUserName));
                }
                if (user.IsDelete == 1)
                {
                    return(LoginJson(2, LoginLanguage.Login_NotFindUserName));
                }
                if (!user.Password.Equals(BaseEncode.GetMd5Str(password)))
                {
                    return(CheckPwdCount(user));
                }

                #endregion

                #region 判断用户的状态是否正常

                //异常状况,需要判断锁定时间
                if (user.Status == 1)
                {
                    if (!user.FreezeTime.HasValue || user.FreezeTime > DateTime.Now)
                    {
                        return(LoginJson(5, LoginLanguage.Login_FreezeAccount));
                    }
                    if (user.FreezeTime.HasValue && user.FreezeTime < DateTime.Now)
                    {
                        user.Status     = 0;
                        user.FreezeTime = null;
                    }
                }

                #endregion

                #endregion

                #region 登录验证通过

                //TODO:大并发时有问题
                //SoleUser(user);
                if (rememberPwd == 1)
                {
                    RememberPwd(username, password);
                }
                //记录最后一次登录时间
                user.LastLoginTime        = DateTime.Now;
                user.PasswordFailureCount = 0;
                user.PasswordFailureTime  = null;
                userBL.Update(user);
                //初始化用户权限
                UserRights  = rightBL.GetRightByUserId(user.UserId);
                CurrentUser = user;
                FormsAuthentication.SetAuthCookie(user.Username, true);

                LoginLog("用户登录", CurrentUser.UserId, HttpContext);

                #endregion

                return(Json(new { result = 0, url = backUrl }, JsonRequestBehavior.DenyGet));
            }
            catch (Exception ex)
            {
                return(Json(new { result = 4, url = backUrl, message = ex.Message + ex.StackTrace }, JsonRequestBehavior.AllowGet));
            }
        }