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