/// <summary> /// 会话合法性验证 /// </summary> /// <param name="call">CallManage</param> /// <param name="verifyurl">验证服务URL</param> /// <param name="aid">操作权限代码,默认为空(不进行鉴权)</param> /// <param name="limit">限制访问时间间隔(秒),默认不启用</param> public Verify(CallManage call, string verifyurl, string aid = null, int limit = 0) { if (!GetToken()) { Result.InvalidAuth(); return; } if (call != null && limit > 0) { var key = Util.Hash(Token.id.ToString() + _Uri.Data); var time = call.LimitCall(key, limit); if (time > 0) { Result.TooFrequent(time.ToString()); return; } } var url = $"{verifyurl}?action={aid}"; var request = new HttpRequest(AccessToken); if (!request.Send(url)) { Result.BadRequest(request.Message); return; } Result = Util.Deserialize <Result <object> >(request.Data); }
/// <summary> /// 通过Access Token校验是否有权限访问 /// </summary> /// <param name="verifyurl">验证服务URL</param> /// <param name="limit">限制调用时间间隔(秒),默认不启用</param> /// <param name="anonymous">是否允许匿名访问(默认不允许)</param> public Verify(string verifyurl, int limit = 0, bool anonymous = false) { if (anonymous) { if (!GetToken()) { Result.InvalidAuth(); return; } Result = new HttpClient(verifyurl).Request(Token); if (Result.Successful) { return; } var time = CallManage.LimitCall(limit <= 0 ? 60 : limit); if (time > 0) { Result.TooFrequent(time); return; } Result.Success(); } else { var time = CallManage.LimitCall(limit); if (time > 0) { Result.TooFrequent(time); return; } if (!GetToken()) { Result.InvalidAuth(); return; } Result = new HttpClient(verifyurl).Request(Token); } }
/// <summary> /// 带鉴权的会话合法性验证 /// </summary> /// <param name="verifyurl">验证服务URL</param> /// <param name="aid">操作ID</param> /// <param name="limit">限制调用时间间隔(秒),默认不启用</param> public Verify(string verifyurl, Guid aid, int limit = 0) { var time = CallManage.LimitCall(limit); if (time > 0) { Result.TooFrequent(time); return; } if (!GetToken()) { Result.InvalidAuth(); return; } var url = $"{verifyurl}/auth?action={aid}"; Result = new HttpClient(url).Request(Token); }