From bca40047b9783d5aadf05d64b128191edb418b09 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期四, 20 六月 2024 16:46:36 +0800
Subject: [PATCH] 修改验签特性
---
Wms/Wms/Controllers/UpApiController.cs | 49 ++++++++++++++++++++++++
Wms/Wms/appsettings.json | 6 +++
Wms/Utility/Filter/ApiSignatureVerificationAttribute.cs | 40 ++++++++++++++++----
Wms/Wms/Startup.cs | 5 ++
4 files changed, 91 insertions(+), 9 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
diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs
index ab24289..e201dcd 100644
--- a/Wms/Wms/Controllers/UpApiController.cs
+++ b/Wms/Wms/Controllers/UpApiController.cs
@@ -14,6 +14,7 @@
using Model.ModelVm.BllCheckVm;
using WMS.DAL;
using Microsoft.AspNetCore.Authorization;
+using Utility;
namespace Wms.Controllers
{
@@ -413,6 +414,10 @@
#region 娴嬭瘯灏忔暟浣嶆暟鍊�
+ ///// <summary>
+ ///// 娴嬭瘯灏忔暟浣嶆暟鍊�
+ ///// </summary>
+ ///// <returns></returns>
//[HttpGet]
//public IActionResult Demo()
//{
@@ -433,6 +438,50 @@
// }
//}
+ /// <summary>
+ /// 娴嬭瘯楠岀鍔犲瘑
+ /// </summary>
+ /// <returns></returns>
+ [Verification]
+ [HttpPost]
+ public IActionResult Demo2(IdVm model)
+ {
+ var result = new ErpModel { Success = -1, Message = "" };
+ try
+ {
+ //var com = new Common();
+ //decimal s = 13.3450M;
+ //var sdf = com.GetViewVal(4, s);
+ result = new ErpModel { Success = -1, Message = "sdf.ToString()" };
+
+ return Ok(result);
+ }
+ catch (Exception e)
+ {
+ result.Message = e.Message;
+ return Ok(result);
+ }
+ }
+
+ [HttpGet]
+ public IActionResult Demo3()
+ {
+ var result = new ErpModel { Success = -1, Message = "" };
+ try
+ {
+ var time = DateTimeOffset.Now.ToUnixTimeSeconds();
+ result = new ErpModel { Success = 0, Message = time.ToString() };
+
+ return Ok(result);
+ }
+ catch (Exception e)
+ {
+ result.Message = e.Message;
+ return Ok(result);
+ }
+ }
+
+
#endregion
}
}
diff --git a/Wms/Wms/Startup.cs b/Wms/Wms/Startup.cs
index cbab3dc..692d801 100644
--- a/Wms/Wms/Startup.cs
+++ b/Wms/Wms/Startup.cs
@@ -109,9 +109,12 @@
#endregion
//读取配置文件配置的接口交互的相关配置
- services.Configure<ApiUrlConfig>(Configuration.GetSection("ApiUrlConfig"));
+ services.Configure<ApiUrlConfig>(Configuration.GetSection("ApiUrlConfig"));
//数据库配置
BaseDbConfig.ConnectionString = Configuration.GetSection("AppSettings:ConnectionString").Value;
+ //验签配置文件
+ SignConfig.AppKey = Configuration.GetSection("SignConfig:AppKey").Value;
+ SignConfig.Minutes = double.Parse(Configuration.GetSection("SignConfig:Minutes").Value);
#region AutoMapper注入
diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json
index a1ef7d5..3ae635d 100644
--- a/Wms/Wms/appsettings.json
+++ b/Wms/Wms/appsettings.json
@@ -36,5 +36,11 @@
"EditLocateUrl": "/api/WCSApi/EditLocatStatus" //鍚屾淇敼鍌ㄤ綅淇℃伅
+ },
+ "SignConfig": {
+ "AppKey": "90170307d4184844ac2a26b431f79980", //楠岀
+ "Minutes": 5 //楠岀鏃堕棿 5鍒嗛挓
}
+
+
}
--
Gitblit v1.8.0