using JiepeiWMS.Common;
using JiepeiWMS.Extends;
using JiepeiWMS.Model;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.ApplicationModels;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Linq;
using System.Threading.Tasks;
namespace JiepeiWMS.Filter
{
///
/// 验证拦截器
///
public class AuthKeySecretAttribute : ActionFilterAttribute
{
///
/// 通用的秘钥key
///
public static string CommonKey = Appsettings.app("AppSettings", "AuthKeySecret").ToString();
///
/// 用户验证
///
///
public override void OnActionExecuting(ActionExecutingContext Context)
{
var msg = string.Empty;
var crt = Context.HttpContext;
var timestamp = crt.Request.Query["Timestamp"].FirstOrDefault()._ToInt64();
var tt = (DateTime.Now - timestamp._ToDateTime()).TotalMinutes;
if (timestamp == 0 || tt > 5)
{
msg = "时间戳已过期";
goto ErrorResult;
}
var verifycode = crt.Request.Query["VerifyCode"].FirstOrDefault();
var md5 = (CommonKey + timestamp)._EcdMD5();
if (md5 != verifycode)
{
msg = "密钥验证失败";
goto ErrorResult;
}
return;
ErrorResult:
Context.Result = new JsonResult(
//该类是KeeSoft框架里自带的一个返回结果集
new MessageModel()
{
success = false,
msg = msg
}
);
}
}
}