/// <summary> /// 登录 /// </summary> /// <param name="acc">学员对象</param> /// <param name="expiresDay">有效时间,单位:天</param> public void Write(Song.Entities.Student acc, int expiresDay) { System.Web.HttpContext _context = System.Web.HttpContext.Current; //生成此次登录的唯一标识 _context.Response.Cookies.Add(new System.Web.HttpCookie("StuedentUID", WeiSha.Common.Request.UniqueID())); //登录标识名 string key = WeiSha.Common.Login.Get["Accounts"].KeyName.String; if (Student.LoginPattern == LoginPatternEnum.Cookies) { System.Web.HttpCookie cookie = new System.Web.HttpCookie(key); cookie.Value = acc.St_ID.ToString(); string exp = WeiSha.Common.Login.Get["Accounts"].Expires.String; if (expiresDay <= 0) { if (!exp.Equals("auto", StringComparison.CurrentCultureIgnoreCase)) { cookie.Expires = DateTime.Now.AddMinutes(WeiSha.Common.Login.Get["Accounts"].Expires.Int32 ?? 10); } } else { cookie.Expires = DateTime.Now.AddDays(expiresDay); } _context.Response.Cookies.Add(cookie); } if (Student.LoginPattern == LoginPatternEnum.Session) { _context.Session[key] = acc.St_ID; } //记录登录日志 Business.Do <IStudent>().LogForLoginAdd(acc); //注册到内存,用于判断在线用户 this.Register(acc); }
/// <summary> /// 获取当前学习的课程 /// </summary> /// <returns></returns> public Song.Entities.Course Course() { if (!this.IsLogin) { return(null); } Song.Entities.Course c = null; Song.Entities.Student st = this.CurrentUser; if (st != null && st.St_CurrCourse > 0) { //是否购买 bool isBuy = false, istry = false; isBuy = Business.Do <ICourse>().StudyIsCourse(st.St_ID, st.St_CurrCourse); if (!isBuy) { istry = Business.Do <ICourse>().IsTryout(st.St_ID, st.St_CurrCourse); } if (isBuy || istry) { c = Business.Do <ICourse>().CourseSingle(st.St_CurrCourse); if (c != null) { c.Cou_LogoSmall = Upload.Get["Course"].Virtual + c.Cou_LogoSmall; c.Cou_Logo = Upload.Get["Course"].Virtual + c.Cou_Logo; } } } return(c); }
/// <summary> /// 将要学习的课程记录下来 /// </summary> /// <param name="cou">课程</param> public void Course(Song.Entities.Course cou) { //记录到数据库 Song.Entities.Student st = this.CurrentUser; st.St_CurrCourse = cou.Cou_ID; Business.Do <IStudent>().StudentSave(st); }
/// <summary> /// 注册已经登录的在线用户,如果已经注册,则更新注册时间 /// </summary> public void Register() { Song.Entities.Student ea = this.Read(); if (ea != null) { Register(ea); } //更新注册信息 //Business.Do<IStudent>().LogForLoginFresh(); }
/// <summary> /// 获取当前登录用户的对象 /// </summary> /// <returns></returns> public Song.Entities.Student Read() { int accid = this.CurrentUserId; if (accid < 1) { return(null); } Song.Entities.Student acc = Business.Do <IStudent>().StudentSingle(accid); return(acc); }
/// <summary> /// 注册某个用户到在线列表中 /// </summary> /// <param name="acc"></param> public void Register(Song.Entities.Student acc) { if (acc == null) { return; } //登录时间,该时间不入数据库,仅为临时使用 acc.St_LastTime = DateTime.Now; //写入登录时的IP acc.St_LastIP = WeiSha.Common.Browser.IP; //写入唯一值,用于判断同一个账号是否多人登录 string uid = WeiSha.Common.Request.UniqueID(); System.Web.HttpContext _context = System.Web.HttpContext.Current; _context.Response.Cookies.Add(new System.Web.HttpCookie("stuid", uid)); acc.St_CheckUID = uid; //登录用户是否已经存在; bool isHav = false; for (int i = 0; i < this._onlineUser.Count; i++) { Song.Entities.Student e = this._onlineUser[i]; if (e == null) { continue; } if (e.St_ID == acc.St_ID) { this._onlineUser[i] = acc; isHav = true; break; } } Business.Do <IStudent>().StudentSave(acc); //如果未登录,则注册进去 if (!isHav) { this._onlineUser.Add(acc); } }
/// <summary> /// 刷新某个登录学员的信息 /// </summary> /// <param name="st">学员</param> public void Refresh(Song.Entities.Student st) { if (st == null) { return; } //登录时间,该时间不入数据库,仅为临时使用 st.St_LastTime = DateTime.Now; for (int i = 0; i < this._onlineUser.Count; i++) { Song.Entities.Student e = this._onlineUser[i]; if (e == null) { continue; } if (e.St_ID == st.St_ID) { this._onlineUser[i] = st; break; } } }
/// <summary> /// 刷新某个登录学员的信息 /// </summary> /// <param name="stid">学员id</param> public void Refresh(int stid) { Song.Entities.Student acc = Business.Do <IStudent>().StudentSingle(stid); Refresh(acc); }
/// <summary> /// 将已经登录入的用户,写入seesion /// </summary> /// <param name="acc"></param> public void Write(Song.Entities.Student acc) { this.Write(acc, -1); }