/// <summary> /// 在调用操作方法之前发生。 /// </summary> /// <param name="actionContext">操作上下文。</param> public override void OnActionExecuting(HttpActionContext actionContext) { // log the request message. actionContext.BuildRequestLog(); var attr = actionContext.ActionDescriptor.GetCustomAttributes <AllowAnonymousAttribute>(); bool isAnonymous = attr.Any(a => a is AllowAnonymousAttribute); if (isAnonymous) { base.OnActionExecuting(actionContext); return; } var accessContext = new AccessContext(actionContext); // 校验接口请求参数签名。 if (AccessSignEnaled) { VerifyAccessSign(accessContext); } // 校验接口访问权限。 if (AccessRightsEnabled) { VerifyAccessRights(accessContext); } // 判断接口访问频率是否超过配置值。 if (AccessFrequencyEnaled) { VerifyAccessFrequency(accessContext); } base.OnActionExecuting(actionContext); }