using Pcb.ApiCam; using Pcb.ApiCam.Infrastructures; using Pcb.Common; using Pcb.Common.Config; using Pcb.Common.Enum; using System; using System.Net.Http; using System.Web.Http.Filters; namespace Pcb.Api.Infrastructures { /// /// 验证拦截器 /// public class AuthKeySecretAttribute : AuthorizationFilterAttribute { /// /// 用户验证 /// /// public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext ActionContext) { base.OnAuthorization(ActionContext); var crt = System.Web.HttpContext.Current; var timestamp = crt.Request["Timestamp"].ToLong() ?? 0; var verifycode = crt.Request["VerifyCode"]; var msg = ClsApi.ValidateCode(verifycode, timestamp); if (!string.IsNullOrEmpty(msg)) { msg = "密钥验证失败"; goto ErrorResult; } return; ErrorResult: ActionContext.Response = AppResponseMessageHelper.OK(EnumApiStatusCode.Fail, msg); } private HttpResponseMessage Response(string content) { return new HttpResponseMessage() { StatusCode = System.Net.HttpStatusCode.Unauthorized, Content = new StringContent(content) }; } } }