namespace Yw.Bimface { /// /// 过期时间 /// internal class ExpireTime { private const int _accessTokenAllowance = 2;//AccessToken的时间余量(小时) private const int _viewTokenHours = 12;//ViewToken的生命周期(小时) private const int _viewTokenAllowance = 10;//ViewToken的时间余量(分钟) //AccessToken的过期时间 private DateTime _accessTokenExpireTime; //ViewToken的获取时间字典 private Dictionary _viewTokenGetTimeDic = new Dictionary(); /// /// 设置AccessToken获取时间 /// /// internal void SetAccessTokenExpireTime(DateTime datetime) { _accessTokenExpireTime = datetime; } /// /// 验证AccessToken是否过期 /// /// 过期返回True internal bool ValidAccessTokenExpiration(DateTime datetime) { if (datetime.AddHours(_accessTokenAllowance) > _accessTokenExpireTime) return true; return false; } /// /// 设置ViewToken的获取时间 /// /// /// internal void SetViewTokenGetTime(long id, DateTime datetime) { if (_viewTokenGetTimeDic.ContainsKey(id)) _viewTokenGetTimeDic[id] = datetime; else _viewTokenGetTimeDic.Add(id, datetime); } /// /// 验证ViewToken是否过期 /// /// /// /// internal bool ValidViewTokenExpiration(long id, DateTime datetime) { if (!_viewTokenGetTimeDic.ContainsKey(id)) return true; var gettime = _viewTokenGetTimeDic[id]; if (gettime.AddHours(_viewTokenHours).AddMinutes(-_viewTokenAllowance) > datetime) return false; return true; } /// /// 移除ViewToken时间 /// /// internal void RemoveViewTokenTime(long id) { if (_viewTokenGetTimeDic.ContainsKey(id)) _viewTokenGetTimeDic.Remove(id); } } }