private void SetUserSession(LoginPermission loginPermission) { HttpCookie cookie = new HttpCookie("WEI_SESSION"); cookie.HttpOnly = true; cookie.Value = loginPermission.Session; _httpContext.Response.SetCookie(cookie); }
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); }