/// <summary>
        /// 获取当前登录用户缓存信息的Key
        /// </summary>
        /// <returns></returns>
        public static string GetCurrentUserCacheId()
        {
            List <string> list = DESUtils.Decrypt(CookieHelper.Get(KeyManager.IsMember)).ToList <string>();

            if (list != null && list.Count() == 2)
            {
                return(list[0]);
            }
            return("");
        }
Exemple #2
0
        public void Set(string key, string value)
        {
            ISharedPreferencesEditor editor = sp.Edit();

            try
            {
                string spValue = DESUtils.Encrypt(value.ToString(), GetSecretKey());
                editor.PutString(GetDigestKey(key), spValue);
            }
            catch (Exception e)
            {
                editor.PutString(GetDigestKey(key), "");
            }
            editor.Apply();
        }
Exemple #3
0
        /// <summary>
        /// Fires on mouse drag
        /// </summary>
        /// <param name="data">Event data</param>
        public void OnDrag(PointerEventData data)
        {
            //Resize
            RectTransformUtility.ScreenPointToLocalPointInRectangle(this.panelTransform, data.position, data.pressEventCamera, out Vector2 localMousePos);
            Vector2 offset    = localMousePos - this.originalMousePos;
            Vector2 sizeDelta = this.originalSizeDelta + new Vector2(offset.x, -offset.y);

            sizeDelta = DESUtils.ClampVector2(sizeDelta, this.min, this.max);

            //Make sure we're not outside of the draw zone
            Vector2 pos          = this.panelTransform.localPosition;
            Vector2 bounds       = new Vector2(this.parentTransform.rect.max.x - this.panelTransform.rect.max.x, this.parentTransform.rect.min.y - this.panelTransform.rect.min.y) - offset;
            Vector2 currentDelta = this.panelTransform.sizeDelta;

            this.panelTransform.sizeDelta = new Vector2(pos.x > bounds.x ? currentDelta.x : sizeDelta.x, pos.y < bounds.y ? currentDelta.y : sizeDelta.y);
        }
Exemple #4
0
        /// <summary>
        /// Fires on mouse drag
        /// </summary>
        /// <param name="data">Event data</param>
        public void OnDrag(PointerEventData data)
        {
            //Move window
            if (RectTransformUtility.ScreenPointToLocalPointInRectangle(this.parentTransform, data.position, data.pressEventCamera, out Vector2 mousePos))
            {
                Vector2 offset = mousePos - this.originalMousePos;
                this.panelTransform.localPosition = this.originalPanelPos + offset;
            }

            //Clamp window
            Vector2 pos    = this.panelTransform.localPosition;
            Vector2 minPos = this.parentTransform.rect.min - this.panelTransform.rect.min;
            Vector2 maxPos = this.parentTransform.rect.max - this.panelTransform.rect.max;

            this.panelTransform.localPosition = DESUtils.ClampVector2(pos, minPos, maxPos);
        }
        public ActionResult ModifyUserPwd(ChangePasswordViewModel viewModel)
        {
            int userId = UserManager.GetCurrentUserInfo().Id;
            var result = WriteError("出现异常,密码修改失败");

            if (!SysUserService.CheckLogin(viewModel.UserName, viewModel.OldPassword))
            {
                return(WriteError("旧密码不正常"));
            }
            else
            {
                if (SysUserService.ModifyUserPwd(userId, viewModel))
                {
                    result = WriteSuccess("密码修改成功");
                    List <string> list = DESUtils.Decrypt(CookieHelper.Get(KeyManager.IsMember)).ToList <string>();
                    if (list == null || list.Count() != 2)
                    {
                        //获取缓存的用户信息
                        SysUser userinfo = CacheManager.Get <SysUser>(list[0]);
                        //删除缓存的用户信息
                        CacheManager.Remove(list[0]);
                        //更新缓存用户信息的KEY
                        list[0] = Guid.NewGuid().ToString();
                        if (list[1] == "0")
                        {
                            CacheManager.Set(list[0], userinfo, new TimeSpan(10, 0, 0, 0));
                            CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()));
                        }
                        else if (list[1] == "1")
                        {
                            CacheManager.Set(list[0], userinfo, new TimeSpan(0, 30, 0));
                            CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()), 30);
                        }
                    }
                }
                else
                {
                    result = WriteError("密码修改失败");
                }
            }
            return(result);
        }
Exemple #6
0
 public string Get(string key, string defValue)
 {
     try
     {
         string spValue = sp.GetString(GetDigestKey(key), "");
         string value   = DESUtils.Decrypt(spValue, GetSecretKey());
         if (TextUtils.IsEmpty(value))
         {
             return(defValue);
         }
         else
         {
             return(value);
         }
     }
     catch (Exception e)
     {
         return(defValue);
     }
 }
        public void OnAuthorization(AuthorizationContext filterContext)
        {
            //判断是否有贴跳过登录检查的特性标签(控制器)
            if (filterContext.ActionDescriptor.ControllerDescriptor.IsDefined(typeof(SkipCheckLogin), false))
            {
                return;
            }

            //方法
            if (filterContext.ActionDescriptor.IsDefined(typeof(SkipCheckLogin), false))
            {
                return;
            }

            if (!string.IsNullOrEmpty(CookieHelper.Get(KeyManager.IsMember)))
            {
                List <string> list = DESUtils.Decrypt(CookieHelper.Get(KeyManager.IsMember)).ToList <string>();
                if (list == null || list.Count() != 2)
                {
                    ToLogin(filterContext);
                    return;
                }
                SysUser userinfo = CacheManager.Get <SysUser>(list[0]);
                if (userinfo != null)
                {
                    // 0为永久key
                    if (list[1] == "0")
                    {
                        CacheManager.Set(list[0], userinfo, new TimeSpan(10, 0, 0, 0));
                    }
                    // 1为滑动key
                    else if (list[1] == "1")
                    {
                        CacheManager.Set(list[0], userinfo, new TimeSpan(0, 30, 0));
                        CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()), 30);
                    }
                    else
                    {
                        ToLogin(filterContext);
                        return;
                    }
                }
                else
                {
                    ToLogin(filterContext);
                    return;
                }
            }
            else
            {
                ToLogin(filterContext);
                return;
            }

            //获得当前要执行的Action上标注的CheckPermissionAttribute实例对象
            CheckPermission[] permAtts = (CheckPermission[])filterContext.ActionDescriptor
                                         .GetCustomAttributes(typeof(CheckPermission), false);
            if (permAtts.Length <= 0)
            {
                return;
            }

            var container = CacheManager.Get <IContainer>(KeyManager.AutofacContainer);
            ISysActionService sysActionService = container.Resolve <ISysActionService>();

            //检查是否有权限
            foreach (var permAtt in permAtts)
            {
                //判断当前登录用户是否具有permAtt.Permission权限
                if (!sysActionService.HasPermission(UserManager.GetCurrentUserInfo().Id, permAtt.Permission))
                {
                    NoPermission(filterContext);
                    return;
                }
            }
        }
 public ActionResult Login(LoginViewModel loginViewModel)
 {
     try
     {
         if (!ModelState.IsValid)
         {
             return(WriteError("实体验证失败"));
         }
         if (loginViewModel.VerifyCode.ToLower() != (string)TempData["verifyCode"])
         {
             return(WriteError("验证码失败"));
         }
         bool result = SysUserService.CheckLogin(loginViewModel.LoginName, loginViewModel.LoginPassword);
         if (result)
         {
             var    user        = SysUserService.GetList(x => x.UserName == loginViewModel.LoginName).FirstOrDefault();
             string userLoginId = Guid.NewGuid().ToString();
             if (loginViewModel.IsMember)
             {
                 List <string> list = new List <string>
                 {
                     userLoginId,
                     "0"
                 };
                 CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()));
                 CacheManager.Set(userLoginId, user, new TimeSpan(10, 0, 0, 0));
             }
             else
             {
                 CookieHelper.Remove(KeyManager.IsMember);
                 List <string> list = new List <string>
                 {
                     userLoginId,
                     "1"
                 };
                 CookieHelper.Set(KeyManager.IsMember, DESUtils.Encrypt(list.ToJson()), 30);
                 CacheManager.Set(userLoginId, user, new TimeSpan(0, 30, 0));
             }
             SysLogLogonService.WriteDbLog(new SysLogLogon
             {
                 LogType     = DbLogType.Login.ToString(),
                 Account     = user.UserName,
                 RealName    = user.NickName,
                 Description = "登陆成功",
             });
             return(WriteSuccess("登录成功"));
         }
         else
         {
             return(WriteError("用户名或者密码错误"));
         }
     }
     catch (Exception ex)
     {
         SysLogLogonService.WriteDbLog(new SysLogLogon
         {
             LogType     = DbLogType.Exception.ToString(),
             Account     = loginViewModel.LoginName,
             RealName    = loginViewModel.LoginName,
             Description = "登录失败," + ex.Message
         });
         return(WriteError(ex));
     }
 }