示例#1
0
        /// <summary>
        /// 安全间隔
        /// </summary>
        /// <param name="method"></param>
        private void IntervalForSecurity(HttpRequestMessage request)
        {
            if (_securityOptions.IntervalSecondsBetweenRequestApi <= 0)
            {
                return;
            }
            if (!_securityOptions.GetIntervalMethods().Contains(request.Method))
            {
                return;
            }

            int seconds = 0;

            //需要特殊处理的接口
            if (_special.TryGetValue(request.RequestUri.AbsolutePath, out int s))
            {
                seconds = s;
            }
            else
            {
                int maxSeconds = _securityOptions.IntervalSecondsBetweenRequestApi;
                seconds = new Random().Next(maxSeconds / 2, maxSeconds + 1);
            }

            Task.Delay(seconds * 1000).Wait();
        }
示例#2
0
        /// <summary>
        /// 安全间隔
        /// </summary>
        /// <param name="method"></param>
        private void IntervalForSecurity(HttpMethod method)
        {
            if (_securityOptions.IntervalSecondsBetweenRequestApi <= 0)
            {
                return;
            }
            if (!_securityOptions.GetIntervalMethods().Contains(method))
            {
                return;
            }

            Task.Delay(_securityOptions.IntervalSecondsBetweenRequestApi * 1000).Wait();
        }