Ejemplo n.º 1
0
        /// <summary>
        /// 设置管理员信息,如果当前用户是管理员的话,则给session的adminId设置为管理员ID,否则不设置session
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public static void SetAdmindId(HttpContext context)
        {
            if (context.Session["adminId"] != null)
            {
                return;
            }
            HttpCookie recordCookie = context.Request.Cookies["sh"];//said history=>Said登录历史

            string recordId = recordCookie == null ? null : recordCookie.Value;

            if (!string.IsNullOrEmpty(recordId))
            {                                                                       //管理员访问历史cookie存在
                AdminRecord record = CacheHelper.GetCache(recordId) as AdminRecord; //检测cache是否有
                if (record == null)
                {
                    record = new AdminRecordApplication().FindById(recordId); //从数据库查询
                    if (record != null)                                       //从cookie中查出来了,放入cache
                    {
                        CacheHelper.SetCache(recordId, record.Admin);
                        //更新到Session
                        context.Session["adminId"] = record.AdminId;
                        //return record.AdminId;
                    }
                }
                else
                {
                    //return record.AdminId;
                    context.Session["adminId"] = record.AdminId;
                }
            }
            //return null;
        }