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) };
}
}
}