Example #1
0
        /// <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);
        }
Example #2
0
 /// <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);
 }
Example #3
0
 /// <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);
 }
Example #4
0
 /// <summary>
 /// 注册已经登录的在线用户,如果已经注册,则更新注册时间
 /// </summary>
 public void Register()
 {
     Song.Entities.Student ea = this.Read();
     if (ea != null)
     {
         Register(ea);
     }
     //更新注册信息
     //Business.Do<IStudent>().LogForLoginFresh();
 }
Example #5
0
        /// <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);
        }
Example #6
0
        /// <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);
            }
        }
Example #7
0
 /// <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;
         }
     }
 }
Example #8
0
 /// <summary>
 /// 刷新某个登录学员的信息
 /// </summary>
 /// <param name="stid">学员id</param>
 public void Refresh(int stid)
 {
     Song.Entities.Student acc = Business.Do <IStudent>().StudentSingle(stid);
     Refresh(acc);
 }
Example #9
0
 /// <summary>
 /// 将已经登录入的用户,写入seesion
 /// </summary>
 /// <param name="acc"></param>
 public void Write(Song.Entities.Student acc)
 {
     this.Write(acc, -1);
 }