From bca40047b9783d5aadf05d64b128191edb418b09 Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期四, 20 六月 2024 16:46:36 +0800 Subject: [PATCH] 修改验签特性 --- Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs | 40 ++++++++++++++++++++++++++++++++-------- 1 files changed, 32 insertions(+), 8 deletions(-) diff --git a/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs b/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs index dc85ffb..8d156f0 100644 --- a/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs +++ b/Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs @@ -16,8 +16,8 @@ [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)] public class VerificationAttribute : ActionFilterAttribute { - private static readonly string appKey = "signature";//鍚庨潰鏀规垚鎷块厤缃枃浠剁殑 - private static readonly double Minutes = 5;//鏃堕棿鎴冲繀椤�5鍒嗛挓鍐呯殑锛屽惁鍒欎笉閫氳繃 + private static readonly string appKey = SignConfig.AppKey; + private static readonly double Minutes = SignConfig.Minutes;//鏃堕棿鎴冲繀椤�5鍒嗛挓鍐呯殑锛屽惁鍒欎笉閫氳繃 public VerificationAttribute() { @@ -71,19 +71,43 @@ private bool IsTimestampValid(string timestamp) { - if (long.TryParse(timestamp, out var timestampSeconds)) + //var logs = long.Parse(timestamp); + //var logs2 = int.Parse(timestamp); + ////if (long.TryParse(timestamp, out var timestampSeconds)) + ////{ + // var requestDateTime = DateTimeOffset.FromUnixTimeSeconds(logs); + // var currentDateTime = DateTimeOffset.UtcNow; + + // // 璁$畻鏃堕棿宸� + // var timeDifference = currentDateTime - requestDateTime; + + // // 姣旇緝鏃堕棿宸槸鍚﹀湪鍏佽鐨勮寖鍥村唴 + // return timeDifference.TotalMinutes <= Minutes; + + ////} + //return false; + + try { - var requestDateTime = DateTimeOffset.FromUnixTimeSeconds(timestampSeconds); + var requestDateTime = DateTimeOffset.FromUnixTimeSeconds(long.Parse(timestamp)); var currentDateTime = DateTimeOffset.UtcNow; // 璁$畻鏃堕棿宸� var timeDifference = currentDateTime - requestDateTime; // 姣旇緝鏃堕棿宸槸鍚﹀湪鍏佽鐨勮寖鍥村唴 - return timeDifference.TotalMinutes <= 5; + return timeDifference.TotalMinutes <= Minutes; } - - return false; + catch (Exception) + { + return false; + } } } -} + public class SignConfig + { + public static string AppKey { get; set; } + public static double Minutes { get; set; } + } + +} \ No newline at end of file -- Gitblit v1.8.0