Beispiel #1
0
        private void SetUserSession(LoginPermission loginPermission)
        {
            HttpCookie cookie = new HttpCookie("WEI_SESSION");

            cookie.HttpOnly = true;
            cookie.Value    = loginPermission.Session;
            _httpContext.Response.SetCookie(cookie);
        }
Beispiel #2
0
        public LoginPermission CheckPermission()
        {
            string session = GetUserSession();

            if (string.IsNullOrEmpty(session))
            {
                return(null);
            }
            // throw new ArgumentNullException("loginPermission.ssession");
            // 获取 loginpermission
            var oldP = (from loginpermission in _loginpermissionRepository.Table
                        where loginpermission.Session == session
                        select loginpermission).FirstOrDefault();

            if (oldP == null || oldP.IsEffectived == 0)
            {
                return(null);
            }
            // 获取用户的最后访问时间
            var lastAccess = (from loginpermission in _loginpermissionRepository.Table
                              where loginpermission.UserId == oldP.UserId
                              orderby loginpermission.AccessTime descending
                              select loginpermission.AccessTime).FirstOrDefault();

            // 标识旧令牌失效
            oldP.IsEffectived = 0;
            _loginpermissionRepository.Update(oldP);

            if (lastAccess == oldP.AccessTime)
            {
                // 生成新令牌 并返回
                LoginPermission newP = new LoginPermission()
                {
                    AccessTime   = DateTime.Now,
                    IsEffectived = 1,
                    Session      = Guid.NewGuid().ToString("N"),
                    UserId       = oldP.UserId
                };
                _loginpermissionRepository.Insert(newP);
                SetUserSession(newP);
                return(newP);
            }

            return(null);
        }
        public void Delete(LoginPermission permission)
        {
            LoginPermissions permissions = new LoginPermissions();

            permissions.Delete(permission);
        }