/// <summary> /// 获取用户信息 /// </summary> /// <param name="cmd"></param> /// <returns></returns> private MUserInfo ReadUserInfo(DbCommand cmd) { EyouSoft.Model.SSOStructure.MUserInfo model = null; using (IDataReader dr = DbHelper.ExecuteReader(cmd, SystemStore)) { if (dr.Read()) { model = new MUserInfo(); model.UserID = dr.IsDBNull(dr.GetOrdinal("UserID")) ? "" : dr.GetString(dr.GetOrdinal("UserID")); model.UserName = dr.IsDBNull(dr.GetOrdinal("UserName")) ? "" : dr.GetString(dr.GetOrdinal("UserName")); model.UserPwd = dr.IsDBNull(dr.GetOrdinal("UserPwd")) ? "" : dr.GetString(dr.GetOrdinal("UserPwd")); model.ContactName = dr.IsDBNull(dr.GetOrdinal("ContactName")) ? "" : dr.GetString(dr.GetOrdinal("ContactName")); model.ContactSex = (Eyousoft_yhq.Model.sexType)dr.GetByte(dr.GetOrdinal("ContactSex")); model.Remark = dr.IsDBNull(dr.GetOrdinal("Remark")) ? "" : dr.GetString(dr.GetOrdinal("Remark")); model.PromotionCode = dr.IsDBNull(dr.GetOrdinal("PromotionCode")) ? "" : dr.GetString(dr.GetOrdinal("PromotionCode")); model.valiUser = GetBoolean(dr.GetString(dr.GetOrdinal("valiUser"))); model.IsAdmin = dr.GetString(dr.GetOrdinal("IsAgent")); model.IsZZ = GetBoolean(dr.GetString(dr.GetOrdinal("IsZZ"))); if (!dr.IsDBNull(dr.GetOrdinal("IssueTime"))) { model.IssueTime = dr.GetDateTime(dr.GetOrdinal("IssueTime")); } model.MingPianId = dr["MingPianId"].ToString(); } } if (model != null) { model.WeiDianId = GetWeiDianId(model.UserID); } return(model); }
/// <summary> /// 记录操作日志 /// </summary> /// <param name="content">操作内容</param> public static void Insert(string content) { MUserInfo uInfo = null; bool isLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out uInfo); if (!isLogin) { return; } MComLocationInfo locationInfo = EyouSoft.Security.Membership.UserProvider.GetLocation(uInfo.SysId); EyouSoft.Model.SysStructure.MSysLogHandleInfo info = new EyouSoft.Model.SysStructure.MSysLogHandleInfo(); info.CompanyId = uInfo.CompanyId; info.Content = content; info.DeptId = uInfo.DeptId; info.DeptName = string.Empty; info.IssueTime = DateTime.Now; info.LogId = Guid.NewGuid().ToString(); info.Menu1Id = locationInfo.Menu1Id; info.Menu2Id = locationInfo.Menu2Id; info.Operator = uInfo.Name; info.OperatorId = uInfo.UserId; info.RemoteIp = EyouSoft.Toolkit.Utils.GetRemoteIP(); new BSysLogHandle().Insert(info); }
/// <summary> /// 设置登录Cookies /// </summary> /// <param name="info">登录用户信息</param> private static void SetCookies(MUserInfo info) { //Cookies生存周期为浏览器进程 HttpResponse response = HttpContext.Current.Response; RemoveCookies(); var cookie = new HttpCookie(LoginCookieUserId); cookie.Value = info.UserID.ToString(); cookie.HttpOnly = true; response.AppendCookie(cookie); cookie = new HttpCookie(LoginCookieUsername); cookie.Value = HttpContext.Current.Server.UrlEncode(info.UserName); cookie.HttpOnly = true; response.AppendCookie(cookie); cookie = new HttpCookie(LoginCookieLastLogTime); cookie.Value = DateTime.Now.ToString("yyyy-M-d-H-m-s"); //cookie.HttpOnly = true; cookie.Expires = DateTime.Now.AddYears(1); response.AppendCookie(cookie); }
protected override void OnInit(EventArgs e) { base.OnInit(e); string weiHuXiaoXi; if (EyouSoft.Security.Membership.UserProvider.IsSysWeiHu(out weiHuXiaoXi)) { RCWE(UtilsCommons.AjaxReturnJson("-10000", weiHuXiaoXi)); } //获取页面请求 类型 string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype"); //初始化用户信息 MUserInfo userInfo = null; _IsLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo); _userInfo = userInfo; if (!_IsLogin)//没有登录 { Response.Redirect(Url_Login); } }
/// <summary> /// 设置登录用户cache /// </summary> /// <param name="info">登录用户信息</param> private static void SetUserCache(MUserInfo info) { string cacheKey = string.Format(EyouSoft.Cache.Tag.TagName.ComUser, info.CompanyId, info.UserId); EyouSoft.Cache.Facade.EyouSoftCache.Remove(cacheKey); EyouSoft.Cache.Facade.EyouSoftCache.Add(cacheKey, info, DateTime.Now.AddHours(12)); }
/// <summary> /// 设置登录Cookies /// </summary> /// <param name="info">登录用户信息</param> private static void SetCookies(MUserInfo info) { //Cookies生存周期为浏览器进程 HttpResponse response = HttpContext.Current.Response; RemoveCookies(); System.Web.HttpCookie cookie = new HttpCookie(LoginCookieCompanyId); cookie.Value = info.CompanyId; cookie.HttpOnly = true; response.AppendCookie(cookie); cookie = new HttpCookie(LoginCookieSysId); cookie.Value = info.SysId; cookie.HttpOnly = true; response.AppendCookie(cookie); cookie = new HttpCookie(LoginCookieUserId); cookie.Value = info.UserId; cookie.HttpOnly = true; response.AppendCookie(cookie); cookie = new HttpCookie(LoginCookieUsername); cookie.Value = info.Username; cookie.HttpOnly = true; response.AppendCookie(cookie); cookie = new HttpCookie(LoginCookieSessionId); cookie.Value = info.OnlineSessionId; cookie.HttpOnly = true; response.AppendCookie(cookie); }
/// <summary> /// 获取当前登录用户指定二级栏目的数据级浏览权限。返回可以浏览到的部门集合。return null时是所有部门。isOnlySelf==true时返回值为int[]{-1},只能查看自己的数据。 /// </summary> /// <param name="menu2">要获取数据级浏览权限的二级栏目</param> /// <param name="isOnlySelf">是否仅查看自己的数据</param> /// <returns>int[deptids]返回可以浏览到的部门集合,return null时是所有部门</returns> protected int[] GetDataPrivs(EyouSoft.Model.EnumType.PrivsStructure.Menu2 menu2, out bool isOnlySelf) { isOnlySelf = true; MUserInfo info = EyouSoft.Security.Membership.UserProvider.GetUserInfo(); if (info == null) { return new int[] { -1 } } ; var privs = GetMenu2Privs(menu2); var depts = EyouSoft.Security.Membership.UserProvider.GetDepts(info.CompanyId); if (depts == null || depts.Count == 0) { return new int[] { -1 } } ; //统计分析默认有内部浏览权限 EyouSoft.Model.EnumType.PrivsStructure.Menu2[] tongJiFenXi = { EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_部门业绩统计 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_个人业绩统计 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_收入对账单 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_线路流量统计 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_销售预警表 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_游客统计表 , EyouSoft.Model.EnumType.PrivsStructure.Menu2.统计分析_状态查询表 }; //数据级权限有优先级:查看全部、内部浏览、部门浏览、本部浏览从高到底。 if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.查看全部))) { isOnlySelf = false; return(null); } else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.内部浏览)) || tongJiFenXi.Contains(menu2)) { isOnlySelf = false; return(GetFirstDeptChildrens(depts, info.DeptId)); } else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.部门浏览))) { isOnlySelf = false; return(GetDeptChildrens(depts, info.DeptId)); } else if (EyouSoft.Security.Membership.UserProvider.IsGrant(info.Privs, GetPrivsId(privs, EyouSoft.Model.EnumType.SysStructure.PrivsType.本部浏览))) { isOnlySelf = false; return(new int[] { info.DeptId }); } return(new int[] { -1 }); }
/// <summary> /// 用户是否登录 /// </summary> /// <param name="info">登录用户信息</param> /// <returns></returns> public static bool IsLogin(out MUserInfo info) { info = GetUserInfo(); if (info == null) { return(false); } return(true); }
/// <summary> /// get login userid /// </summary> /// <returns></returns> private string GetLoginUserId() { MUserInfo info = null; bool isLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out info); if (!isLogin) { return(string.Empty); } return(info.UserId); }
protected override void OnInit(EventArgs e) { base.OnInit(e); string weiHuXiaoXi; if (EyouSoft.Security.Membership.UserProvider.IsSysWeiHu(out weiHuXiaoXi)) { RCWE(UtilsCommons.AjaxReturnJson("-10000", weiHuXiaoXi)); } //获取页面请求 类型 string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype"); if (urlType == "pageajax") { isAjaxConnect = true; } //初始化用户信息 MUserInfo userInfo = null; _IsLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo); _userInfo = userInfo; if (!_IsLogin)//没有登录 { //判断页面请求类型 if (isAjaxConnect)//是Ajax请求 { Response.Clear(); Response.Write("{Islogin:false}"); Response.End(); } else//普通浏览器请求 { RedirectToUrl(Url_Login); } } else//已登录 { if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商) { RedirectToUrl("/GroupEnd/Suppliers/ProductList.aspx"); } if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.导游 || _userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.内部员工) { RedirectToUrl("/Default.aspx"); } } }
/// <summary> /// 判断当前用户是否有权限 /// </summary> /// <param name="permissionId">权限ID</param> /// <returns></returns> private bool CheckGrant(EyouSoft.Model.EnumType.PrivsStructure.Privs permission) { //初始化用户信息 MUserInfo userInfo = null; _IsLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo); _userInfo = userInfo; if (_userInfo == null) { return(false); } return(_userInfo.Privs.Contains((int)permission)); }
public void autoLogin(string userId, string username, out MUserInfo uInfo) { uInfo = null; uInfo = dal.LoginById(userId); if (uInfo == null) { return; } if (uInfo.UserName != username) { uInfo = null; return; } }
/// <summary> /// 获取登录用户信息 /// </summary> /// <returns></returns> public static MUserInfo GetUserInfo() { MUserInfo info = null; string userId = GetCookie(LoginCookieUserId); string username = GetCookie(LoginCookieUsername); if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(username)) { return(null); } new Eyousoft_yhq.BLL.MemberLogin().autoLogin(userId, username, out info); return(info); }
public MUserInfo isLogin(string un, string pwd) { if (un == "" || pwd == "") { return(null); } MUserInfo cookies = dal.Login(un, pwd); if (cookies != null) { SetCookies(cookies); } return(cookies); }
/// <summary> /// 自动登录,返回1成功,其它失败 /// </summary> /// <param name="huiYuanId">会员编号</param> /// <param name="info">out</param> /// <returns></returns> public static int AutoLogin(string huiYuanId, out MUserInfo info) { var _dal = new Eyousoft_yhq.SQLServerDAL.DMemberLogin(); info = null; info = _dal.LoginById(huiYuanId); if (info == null) { return(0); } SetCookies(info); return(1); }
/// <summary> /// 获取已登录会员信息 /// </summary> /// <returns></returns> public static MUserInfo GetLoginHuiYuanInfo() { var _dal = new Eyousoft_yhq.SQLServerDAL.DMemberLogin(); MUserInfo info = null; string huiYuanId = GetCookie(LoginCookieUserId); string yongHuMing = GetCookie(LoginCookieUsername); if (string.IsNullOrEmpty(huiYuanId) || string.IsNullOrEmpty(yongHuMing)) { return(info); } info = _dal.LoginById(huiYuanId); return(info); }
protected override void OnInit(EventArgs e) { base.OnInit(e); //获取页面请求 类型 string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype"); if (urlType == "pageajax") { isAjaxConnect = true; } //初始化用户信息 MUserInfo userInfo = null; _IsLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo); _userInfo = userInfo; if (!_IsLogin)//没有登录 { //判断页面请求类型 if (isAjaxConnect)//是Ajax请求 { Response.Clear(); Response.Write("{Islogin:false}"); Response.End(); } else//普通浏览器请求 { RedirectToUrl(Url_Login); } } else//已登录 { if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社) { RedirectToUrl("/GroupEnd/Distribution/AcceptPlan.aspx"); } if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.导游 || _userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.内部员工) { RedirectToUrl("/Default.aspx"); } } }
/// <summary> /// 登录 /// </summary> /// <param name="mUserInfo"></param> public static void DoLogin(MUserInfo mUserInfo, bool needRedirect = false) { string userInfoSerialize = mUserInfo.SerializeToString(); //创建form身份验证票据 FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, mUserInfo.UserName, DateTime.Now, DateTime.Now.AddYears(10), false, userInfoSerialize); //加密后的身份票据字符串 String encTicket = FormsAuthentication.Encrypt(ticket); //FormsAuthentication.SetAuthCookie(mUserInfo.UserName+mUserInfo.Id, false); //把加密后的身份票据字符串保存到cookie中,cookie名为web.config配置的数据 HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket)); //跳转到登录成功页面 //HttpContext.Current.Response.Redirect(FormsAuthentication.GetRedirectUrl(mUserInfo.UserName, false)); if (needRedirect) { HttpContext.Current.Response.Redirect(FormsAuthentication.DefaultUrl); } }
/// <summary> /// 会员登录,返回1成功,其它失败 /// </summary> /// <param name="u">用户名</param> /// <param name="p">密码</param> /// <param name="info">OUT 会员信息</param> /// <returns></returns> public static int Login(string u, string p, out MUserInfo info) { info = null; if (string.IsNullOrEmpty(u) || string.IsNullOrEmpty(p)) { return(0); } var _dal = new Eyousoft_yhq.SQLServerDAL.DMemberLogin(); info = _dal.Login(u, p); if (info == null) { return(-1); } SetCookies(info); return(1); }
/// <summary> /// OnInit /// </summary> /// <param name="e"></param> protected override void OnInit(EventArgs e) { base.OnInit(e); MUserInfo m = null; bool isLogin = IsLogin(out m); if (!isLogin) { string URL = Server.UrlEncode(Request.Url.ToString()); if (URL.Contains("AppPage")) { Response.Redirect("/AppPage/App_login.aspx?rurl=" + URL); } else { Response.Redirect("/login.aspx?rurl=" + URL); } } HuiYuanInfo = m; }
private void button4_Click(object sender, EventArgs e) { try { //server_info si = SSTest.Comm.Query.SelectServer(loginresult, 0); List <string> ls = new List <string>(); ls.Add("backpack"); //Typelist tl = new Typelist(); //tl.type = new List<string>(); //tl.type.Add("backpack"); string tlist = CommMeth.JsonSerialize <List <string> >(ls); string tll = "{" + string.Format("\"type\":{0}", tlist) + "}"; string aaa = SSTest.Comm.Query.getuserinfo(si.ip, si.port.ToString(), sessionid, tll); //string aaa = SSTest.Comm.Query.getuserinfo(si.ip, si.port.ToString(), sessionid, "{\"type\": [\"backpack\"]}"); richTextBox1.Text = aaa; MUserInfo resultmodel = CommMeth.JsonDeserialize <MUserInfo>(aaa); } catch (Exception ex) { } }
/// <summary> /// 写登录日志,用户登录时更新最后登录时间、在线状态、会话标识 /// </summary> /// <param name="info">登录用户信息</param> /// <param name="loginType">登录类型</param> public void LoginLogwr(MUserInfo info, EyouSoft.Model.EnumType.ComStructure.UserLoginType loginType) { string cmdText = SQL_INSERT_LoginLogwr; if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录) { cmdText = SQL_INSERT_LoginLogwr + "UPDATE [tbl_ComUser] SET [LastLoginTime]=@IssueTime,[OnlineStatus]=@OnlineStatus,[OnlineSessionId]=@OnlineSessionId WHERE [UserId]=@OperatorId;"; } DbCommand cmd = _db.GetSqlStringCommand(cmdText); _db.AddInParameter(cmd, "LogId", DbType.AnsiStringFixedLength, Guid.NewGuid().ToString()); _db.AddInParameter(cmd, "CompanyId", DbType.AnsiStringFixedLength, info.CompanyId); _db.AddInParameter(cmd, "OperatorId", DbType.AnsiStringFixedLength, info.UserId); _db.AddInParameter(cmd, "IssueTime", DbType.DateTime, DateTime.Now); _db.AddInParameter(cmd, "Ip", DbType.String, Utils.GetRemoteIP()); _db.AddInParameter(cmd, "LoginType", DbType.Byte, loginType); _db.AddInParameter(cmd, "Client", DbType.String, new EyouSoft.Toolkit.BrowserInfo().ToJsonString()); _db.AddInParameter(cmd, "OnlineStatus", DbType.Byte, info.OnlineStatus); _db.AddInParameter(cmd, "OnlineSessionId", DbType.AnsiString, info.OnlineSessionId); DbHelper.ExecuteSql(cmd, _db); }
protected override void OnInit(EventArgs e) { base.OnInit(e); _SL = Utils.GetQueryStringValue("sl"); //获取页面请求 类型 string urlType = EyouSoft.Common.Utils.GetQueryStringValue("urltype"); if (urlType == "pageajax") { isAjaxConnect = true; } //初始化用户信息 MUserInfo userInfo = null; _IsLogin = EyouSoft.Security.Membership.UserProvider.IsLogin(out userInfo); _userInfo = userInfo; string weiHuXiaoXi; if (EyouSoft.Security.Membership.UserProvider.IsSysWeiHu(out weiHuXiaoXi) && _IsLogin) { RCWE(UtilsCommons.AjaxReturnJson("-10000", weiHuXiaoXi)); } if (!_IsLogin)//没有登录 { //判断页面请求类型 if (isAjaxConnect)//是Ajax请求 { Response.Clear(); Response.Write("{Islogin:false}"); Response.End(); } else//普通浏览器请求 { if (this.PageType == PageType.general) { RedirectLogin(Request.Url.ToString()); } else { Response.Clear(); Response.Write("<script type='text/javascript'>"); Response.Write("if(window.parent.Boxy==undefined||window.parent.Boxy==null){"); Response.Write("window.location.href='" + Url_Login + "';"); Response.Write("}else{"); Response.Write("window.location.href='" + Url_MinLogin + "?returnurl=" + Server.UrlEncode(Request.Url.ToString()) + "';"); Response.Write("}"); Response.Write("</script>"); Response.End(); } } } else//已登录 { if (!CommomPage.Contains(Request.Url.AbsolutePath.ToLower())) { if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商) { HttpContext.Current.Response.Redirect("/GroupEnd/Suppliers/ProductList.aspx", true); } if (_userInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社) { HttpContext.Current.Response.Redirect("/GroupEnd/Distribution/AcceptPlan.aspx", true); } } } }
/// <summary> /// 自动登录处理 /// </summary> /// <param name="sysId">系统编号</param> /// <param name="companyId">公司编号</param> /// <param name="userId">用户编号</param> /// <param name="username">用户账号</param> /// <param name="uInfo">登录用户信息</param> private static void AutoLogin(string sysId, string companyId, string userId, string username, out MUserInfo uInfo) { uInfo = null; IUserLogin dal = new DUserLogin(); MSysDomain domainInfo = GetDomain(); if (domainInfo == null || domainInfo.SysId != sysId || domainInfo.CompanyId != companyId) { uInfo = null; return; } uInfo = dal.Login(userId); if (uInfo == null) { return; } if (uInfo.Username != username) { uInfo = null; return; } if (uInfo.CompanyId != companyId) { uInfo = null; return; } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商 && uInfo.SourceCompanyInfo == null) { uInfo = null; return; } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社 && uInfo.TourCompanyInfo == null) { uInfo = null; return; } if (uInfo.Status != EyouSoft.Model.EnumType.ComStructure.UserStatus.正常) { uInfo = null; return; } uInfo.SysId = sysId; uInfo.LoginTime = uInfo.LastLoginTime.HasValue ? uInfo.LastLoginTime.Value : DateTime.Now; dal.LoginLogwr(uInfo, EyouSoft.Model.EnumType.ComStructure.UserLoginType.自动登录); SetUserCache(uInfo); }
/// <summary> /// 用户登录,返回1登录成功 /// </summary> /// <param name="companyId">系统公司编号</param> /// <param name="username">用户名</param> /// <param name="pwdInfo">登录密码</param> /// <param name="uInfo">登录用户信息</param> /// <returns></returns> public static int Login(string companyId, string username, MPasswordInfo pwdInfo, out MUserInfo uInfo) { IUserLogin dal = new DUserLogin(); uInfo = null; if (string.IsNullOrEmpty(companyId)) { return(0); } if (string.IsNullOrEmpty(username)) { return(-1); } if (pwdInfo == null || string.IsNullOrEmpty(pwdInfo.NoEncryptPassword)) { return(-2); } MSysDomain domainInfo = GetDomain(); if (domainInfo == null) { return(-3); } uInfo = dal.Login(companyId, username, pwdInfo); //通过用户名及密码验证失败,判断登录密码是否为客服服务密码,如果是将绕过密码验证 //使用客服密码登录时登录日志做客服登录标识 EyouSoft.Model.EnumType.ComStructure.UserLoginType loginType = EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录; if (uInfo == null) { if (System.Configuration.ConfigurationManager.AppSettings["KeFuPwd"] == pwdInfo.MD5Password) { uInfo = dal.Login(companyId, username); loginType = EyouSoft.Model.EnumType.ComStructure.UserLoginType.客服登录; } if (uInfo == null) { return(-4); } } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商 && uInfo.SourceCompanyInfo == null) { uInfo = null; return(-5); } if (uInfo.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社 && uInfo.TourCompanyInfo == null) { uInfo = null; return(-6); } if (uInfo.Status != EyouSoft.Model.EnumType.ComStructure.UserStatus.正常) { uInfo = null; return(-7); } var setting = GetComSetting(companyId); if (IsLoginLimit(uInfo.UserType)) { switch (setting.UserLoginLimitType) { case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.None: break; case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Earliest: if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录 && uInfo.OnlineStatus == EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Online) { uInfo = null; return(-8); } break; case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Latest: break; default: break; } } uInfo.SysId = domainInfo.SysId; uInfo.LoginTime = DateTime.Now; if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.用户登录) { uInfo.OnlineStatus = EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Online; uInfo.OnlineSessionId = Guid.NewGuid().ToString(); } dal.LoginLogwr(uInfo, loginType); SetUserCache(uInfo); SetCookies(uInfo); if (loginType == EyouSoft.Model.EnumType.ComStructure.UserLoginType.客服登录) { SetKeFuLoginCookies(); } return(1); }
/// <summary> /// 获取登录用户信息 /// </summary> /// <returns></returns> public static MUserInfo GetUserInfo() { MUserInfo info = null; string companyId = GetCookie(LoginCookieCompanyId); string userId = GetCookie(LoginCookieUserId); string username = GetCookie(LoginCookieUsername); string sysId = GetCookie(LoginCookieSysId); if (string.IsNullOrEmpty(companyId) || string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(username) || string.IsNullOrEmpty(sysId)) { return(null); } //从缓存查询登录用户信息 string cacheKey = string.Format(EyouSoft.Cache.Tag.TagName.ComUser, companyId, userId); //从缓存查询登录用户信息计数器 int getCacheCount = 2; do { info = (MUserInfo)EyouSoft.Cache.Facade.EyouSoftCache.GetCache(cacheKey); getCacheCount--; } while (info == null && getCacheCount > 0); //缓存中未找到登录用户信息,自动登录处理 if (info == null) { AutoLogin(sysId, companyId, userId, username, out info); } if (info == null) { return(null); } var setting = GetComSetting(companyId); if (!IsKeFuLogin() && IsLoginLimit(info.UserType)) { switch (setting.UserLoginLimitType) { case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Earliest: if (info.OnlineStatus == EyouSoft.Model.EnumType.ComStructure.UserOnlineStatus.Offline) { return(null); } break; case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.Latest: if (info.OnlineSessionId != GetCookie(LoginCookieSessionId)) { return(null); } break; case EyouSoft.Model.EnumType.ComStructure.UserLoginLimitType.None: break; default: break; } } return(info); }
/// <summary> /// 获取用户信息 /// </summary> /// <param name="cmd"></param> /// <returns></returns> private MUserInfo ReadUserInfo(DbCommand cmd) { MUserInfo info = null; string privs = string.Empty; string otherCompanyId = string.Empty; using (IDataReader rdr = DbHelper.ExecuteReader(cmd, SystemStore)) { if (rdr.Read()) { info = new MUserInfo(); info.CompanyId = rdr.GetString(rdr.GetOrdinal("CompanyId")); //info.CompanyName = rdr["CompanyName"].ToString(); info.DeptId = rdr.GetInt32(rdr.GetOrdinal("DeptId")); info.DeptName = rdr["DeptName"].ToString(); info.Fax = rdr["ContactFax"].ToString(); info.IsAdmin = GetBoolean(rdr.GetString(rdr.GetOrdinal("IsAdmin"))); info.Status = (EyouSoft.Model.EnumType.ComStructure.UserStatus)rdr.GetByte(rdr.GetOrdinal("UserStatus")); info.JGDeptId = rdr.GetInt32(rdr.GetOrdinal("DeptIdJG")); if (!rdr.IsDBNull(rdr.GetOrdinal("LastLoginTime"))) { info.LastLoginTime = rdr.GetDateTime(rdr.GetOrdinal("LastLoginTime")); } info.Mobile = rdr["ContactMobile"].ToString(); info.Name = rdr["ContactName"].ToString(); info.Telephone = rdr["ContactTel"].ToString(); info.UserId = rdr.GetString(rdr.GetOrdinal("UserId")); info.Username = rdr.GetString(rdr.GetOrdinal("UserName")); info.UserType = (EyouSoft.Model.EnumType.ComStructure.UserType)rdr.GetByte(rdr.GetOrdinal("UserType")); privs = rdr["Privs"].ToString(); if (!rdr.IsDBNull(rdr.GetOrdinal("TourCompanyId"))) { otherCompanyId = rdr.GetString(rdr.GetOrdinal("TourCompanyId")); } info.RoleId = rdr.GetInt32(rdr.GetOrdinal("RoleId")); info.OnlineSessionId = rdr["OnlineSessionId"].ToString(); info.OnlineStatus = (UserOnlineStatus)rdr.GetByte(rdr.GetOrdinal("OnlineStatus")); } } if (info != null) { //公司名称及系统编号处理 string companyName, sysId; GetCompany(info.CompanyId, out sysId, out companyName); info.CompanyName = companyName; info.SysId = sysId; //权限处理 /*if (!string.IsNullOrEmpty(privs)) * { * string[] arr = privs.Split(','); * int count = arr.Length; * info.Privs = new int[count]; * * for (int i = 0; i < count; i++) * { * info.Privs[i] = Utils.GetInt(arr[i], -1); * } * } * else * { * info.Privs = new int[] { -1 }; * }*/ info.RolePrivs = GetRolePrivs(info.RoleId); //供应商用户处理 if (info.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.供应商) { info.SourceCompanyInfo = GetSourceCompanyInfo(otherCompanyId); } //分销商用户处理 if (info.UserType == EyouSoft.Model.EnumType.ComStructure.UserType.组团社) { info.TourCompanyInfo = GetTourCompanyInfo(otherCompanyId, info.UserId); } } return(info); }
/// <summary> /// 自动登录,返回1成功,其它失败 /// </summary> /// <param name="huiYuanId">会员编号</param> /// <returns></returns> public static int AutoLogin(string huiYuanId) { MUserInfo info = null; return(AutoLogin(huiYuanId, out info)); }