From 77e34c929ccd44767c31b98c4bf4ce84319e2eb3 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期三, 25 三月 2026 17:04:47 +0800
Subject: [PATCH] 新增Token 生成,校验,刷新功能 (暂时禁用Token功能 如果想要启用,在WebApiConfig.cs文件中解除注释)
---
NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache | 0
WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs | 3
WebAPI/Service/TokenAppendHandler.cs | 65 ++++++++++
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs | 2
WebAPI/Controllers/条码管理/WEBSController.cs | 15 ++
WebAPI/WebAPI.csproj.user | 2
WebAPI/Utility/JWTHelper.cs | 27 ++++
Model/obj/Release/Model.csproj.AssemblyReference.cache | 0
WebAPI/Controllers/WebAPIController.cs | 18 ++
DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache | 0
WebAPI/App_Start/WebApiConfig.cs | 6 +
DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache | 0
SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache | 0
WebAPI/Global.asax.cs | 1
WebAPI/Service/JwtAuthorizeAttribute.cs | 94 ++++++++++++---
WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user | 23 ++-
WebAPI/WebAPI.csproj | 1
WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs | 67 +++++++++++
18 files changed, 292 insertions(+), 32 deletions(-)
diff --git a/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache b/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
index 6a0ebd2..b388d5e 100644
--- a/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
+++ b/DBUtility/obj/Release/DBUtility.csproj.AssemblyReference.cache
Binary files differ
diff --git a/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache b/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
index 4fdf9d2..e2df193 100644
--- a/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
+++ b/DBUtility/obj/Release/DBUtility.csproj.GenerateResource.Cache
Binary files differ
diff --git a/Model/obj/Release/Model.csproj.AssemblyReference.cache b/Model/obj/Release/Model.csproj.AssemblyReference.cache
index db7ff6f..6ee274b 100644
--- a/Model/obj/Release/Model.csproj.AssemblyReference.cache
+++ b/Model/obj/Release/Model.csproj.AssemblyReference.cache
Binary files differ
diff --git a/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
index 22d2128..4f6d8de 100644
--- a/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/NETERPNoWin/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache b/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
index b8c24e7..5fa8201 100644
--- a/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
+++ b/SQLHelper/obj/Release/SQLHelper.csproj.AssemblyReference.cache
Binary files differ
diff --git a/WebAPI/App_Start/WebApiConfig.cs b/WebAPI/App_Start/WebApiConfig.cs
index 511fe89..7ddc912 100644
--- a/WebAPI/App_Start/WebApiConfig.cs
+++ b/WebAPI/App_Start/WebApiConfig.cs
@@ -29,6 +29,12 @@
routeTemplate: "actionapi/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
+
+ // 鍏ㄥ眬鍚敤 JWT 璁よ瘉
+ // config.Filters.Add(new JwtAuthorizeAttribute());
+
+ // 鍚敤JWT鍝嶅簲鎷︽埅鍣紝鑷姩鍒锋柊JWT
+ // config.MessageHandlers.Add(new TokenAppendHandler());
}
}
}
diff --git a/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs b/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
index 0607669..5e7acd7 100644
--- a/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
+++ b/WebAPI/Controllers/BaseSet/Xt_grdAlignment_WMESController.cs
@@ -12,6 +12,7 @@
using WebAPI.Models;
namespace WebAPI.Controllers.BaseSet
{
+ [AllowAnonymous]
public class Xt_grdAlignment_WMESController : ApiController
{
private json objJsonResult = new json();
@@ -875,6 +876,8 @@
#region 鎶ラ敊淇℃伅 鏌ヨ
[Route("Xt_grdAlignment_WMES/SelectMessageError")]
[HttpGet]
+ [AllowAnonymous]
+
public object SelectMessageError(string ErrorCode)
{
try
diff --git a/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs b/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
index 07728a3..b248bff 100644
--- a/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
+++ b/WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
@@ -2648,6 +2648,8 @@
#region 宸ヨ壓璺嚎闇�瑕佹垜瀹℃壒娴佸鎵圭殑
[Route("Gy_Routing/NeedChecklist")]
[HttpGet]
+ [AllowAnonymous]
+
public object NeedChecklist(string user, string userid)
{
try
diff --git a/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs b/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
index 37de902..b8491fd 100644
--- a/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
+++ b/WebAPI/Controllers/SBGL/Gy_EquipFileMainController.cs
@@ -1322,6 +1322,73 @@
}
#endregion
+ #region 璁惧杩愯鎶ヨ〃(鍒嗛〉)
+ [Route("SB_EquipRunningStatus/ReportPage")]
+ [HttpGet]
+ public object ReportPage(string sWhere, string user, int page=1, int size=50)
+ {
+ try
+ {
+ List<object> columnNameList = new List<object>();
+ //if (!DBUtility.ClsPub.Security_Log("Gy_EquipFileList", 1, false, user))
+ //{
+ // objJsonResult.code = "0";
+ // objJsonResult.count = 0;
+ // objJsonResult.Message = "娌℃湁鏌ョ湅鏉冮檺";
+ // objJsonResult.data = null;
+ // return objJsonResult;
+ //}
+ if (sWhere == null || sWhere.Equals(""))
+ {
+ ds = oCN.RunProcReturn("select * from h_v_Sb_EquipRunningStatusReport " + sWhere + " order by 鎵�灞炴棩鏈� desc", "h_v_Sb_EquipRunningStatusReport");
+ }
+ else
+ {
+ string sql1 = "select * from h_v_Sb_EquipRunningStatusReport where 1 = 1 ";
+ string sql = sql1 + sWhere + " order by 鎵�灞炴棩鏈� desc";
+ sql += $" offset {(page - 1) * size} rows fetch next {size} rows only";
+ ds = oCN.RunProcReturn(sql, "h_v_Sb_EquipRunningStatusReport");
+ }
+
+ //娣诲姞鍒楀悕
+ foreach (DataColumn col in ds.Tables[0].Columns)
+ {
+ Type dataType = col.DataType;
+ string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
+ columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//鑾峰彇鍒癉ataColumn鍒楀璞$殑鍒楀悕
+ }
+
+ objJsonResult.code = "1";
+ objJsonResult.count = 1;
+ objJsonResult.Message = "Sucess锛�";
+ objJsonResult.data = ds.Tables[0];
+ objJsonResult.list = columnNameList;
+ return objJsonResult;
+
+ //if (ds.Tables[0].Rows.Count != 0 && ds != null)
+ //{
+
+ //}
+ //else
+ //{
+ // objJsonResult.code = "0";
+ // objJsonResult.count = 0;
+ // objJsonResult.Message = "鏃犳暟鎹�";
+ // objJsonResult.data = null;
+ // return objJsonResult;
+ //}
+ }
+ catch (Exception e)
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "Exception锛�" + e.ToString();
+ objJsonResult.data = null;
+ return objJsonResult;
+ }
+ }
+ #endregion
+
#region 璁惧杩愯鐘舵�佹姤琛�
[Route("SB_EquipRunningStatus/Report")]
diff --git a/WebAPI/Controllers/WebAPIController.cs b/WebAPI/Controllers/WebAPIController.cs
index 14e054b..6a78309 100644
--- a/WebAPI/Controllers/WebAPIController.cs
+++ b/WebAPI/Controllers/WebAPIController.cs
@@ -340,6 +340,7 @@
/// <returns></returns>
[Route("Web/GetUser")]
[HttpGet]
+ [AllowAnonymous]
public object GetUser(string UserName, string PassWord, string HOrgName)
{
try
@@ -384,11 +385,23 @@
}
}
+ if (!oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鐧诲綍寮傚父锛乀oken 鐢熸垚寮傚父锛屾棤娉曡幏鍙栧叕鍙镐俊鎭紒";
+ }
+
+ string tokenStr = Utility.JWTHelper.GenerateToken(UserName.Trim(), DBUtility.ClsPub.StrToPsd(PassWord.Trim()));
+
+
objjson.code = "0";
objjson.count = 1;
objjson.Message = "[0000-1-073]鐧诲綍鎴愬姛锛�";
objjson.data = ds.Tables[0];
- return objjson;
+ JObject jobjJsonResult = JObject.FromObject(objjson);
+ jobjJsonResult["token"] = tokenStr;
+ return jobjJsonResult;
}
catch (Exception e)
@@ -2619,6 +2632,7 @@
/// <returns></returns>
[Route("Web/GetDataBases")]
[HttpGet]
+ [AllowAnonymous]
public object GetDataBases()
{
try
@@ -18965,6 +18979,7 @@
/// <returns></returns>
[Route("Web/GetOrganizations")]
[HttpGet]
+ [AllowAnonymous]
public object GetOrganizations()
{
try
@@ -18997,6 +19012,7 @@
/// <returns></returns>
[Route("Web/BaseInfo")]
[HttpGet]
+ [AllowAnonymous]
public object GetBaseInfo()
{
try
diff --git "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs" "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
index f77c62f..5a74ab9 100644
--- "a/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
+++ "b/WebAPI/Controllers/\346\235\241\347\240\201\347\256\241\347\220\206/WEBSController.cs"
@@ -46,6 +46,7 @@
/// <returns></returns>
[Route("WEBSController/GetUser_Json")]
[HttpGet]
+ [AllowAnonymous]
public object GetUser_Json(string HUserNumber, string HPassWord, Int64 HStockOrgID, string HStockOrgName)
{
try
@@ -91,11 +92,23 @@
return objJsonResult;
}
+ if(!oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+ {
+ objJsonResult.code = "0";
+ objJsonResult.count = 0;
+ objJsonResult.Message = "鐧诲綍寮傚父锛乀oken 鐢熸垚寮傚父锛屾棤娉曡幏鍙栧叕鍙镐俊鎭紒";
+ }
+
+ string tokenStr = JWTHelper.GenerateToken(ds.Tables[0].Rows[0]["Czybm"].ToString(), ds.Tables[0].Rows[0]["Czmm"].ToString());
+
+
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "鐧诲綍鎴愬姛锛�";
objJsonResult.data = ds.Tables[0];
- return objJsonResult;
+ JObject jobjJsonResult = JObject.FromObject(objJsonResult);
+ jobjJsonResult["token"] = tokenStr;
+ return jobjJsonResult;
}
}
catch (Exception e)
diff --git a/WebAPI/Global.asax.cs b/WebAPI/Global.asax.cs
index f7e6570..912ff30 100644
--- a/WebAPI/Global.asax.cs
+++ b/WebAPI/Global.asax.cs
@@ -11,6 +11,7 @@
{
protected void Application_Start()
{
+
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
diff --git a/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user b/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
index 91f55db..1fc7078 100644
--- a/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
+++ b/WebAPI/Properties/PublishProfiles/FolderProfile4.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<_PublishTargetUrl>D:\缃戠珯鍙戝竷\鏅轰簯MESWMS\API</_PublishTargetUrl>
- <History>True|2026-03-24T00:56:28.1340424Z;True|2026-03-24T08:11:40.8167004+08:00;False|2026-03-24T08:10:24.5227115+08:00;True|2026-03-23T16:52:06.1962112+08:00;True|2026-03-23T10:48:43.9146974+08:00;False|2026-03-23T10:47:37.6567528+08:00;True|2026-03-23T10:21:45.2785227+08:00;False|2026-03-23T10:21:38.6946638+08:00;True|2026-03-20T13:20:00.4199413+08:00;False|2026-03-20T13:19:48.2280600+08:00;True|2026-03-19T16:53:44.5050326+08:00;True|2026-03-19T10:10:35.5101923+08:00;False|2026-03-19T10:10:15.7270659+08:00;True|2026-03-18T19:51:55.1022153+08:00;True|2026-03-18T19:41:13.5178535+08:00;False|2026-03-18T19:40:38.2085412+08:00;True|2026-03-18T09:40:21.0697989+08:00;True|2026-03-18T09:34:25.1335941+08:00;False|2026-03-18T09:33:56.8767961+08:00;False|2026-03-17T11:45:46.0943251+08:00;True|2026-03-16T14:55:19.5092172+08:00;True|2026-03-16T14:39:12.2885876+08:00;True|2026-03-16T13:20:59.6155796+08:00;True|2026-03-16T12:53:38.9806066+08:00;False|2026-03-16T12:53:28.1149911+08:00;True|2026-03-16T10:21:54.6583129+08:00;False|2026-03-16T10:20:22.8166196+08:00;True|2026-03-13T13:56:44.7436815+08:00;True|2026-03-13T13:48:09.2962246+08:00;True|2026-03-13T10:01:06.8006672+08:00;False|2026-03-13T09:59:31.4203821+08:00;True|2026-03-09T01:54:24.1336085+08:00;False|2026-03-09T01:53:17.3398700+08:00;True|2026-03-09T01:28:43.0746681+08:00;True|2026-03-09T00:35:43.7572081+08:00;False|2026-03-09T00:34:44.1380553+08:00;True|2026-03-02T10:58:08.4918461+08:00;True|2026-02-28T14:36:37.1813756+08:00;True|2026-02-28T09:10:06.2035727+08:00;True|2026-02-28T08:45:06.8758170+08:00;False|2026-02-28T08:45:00.2780485+08:00;True|2026-02-27T16:29:24.9278951+08:00;False|2026-02-27T16:29:01.8985145+08:00;True|2026-02-27T15:25:58.1156917+08:00;False|2026-02-27T15:25:50.1203408+08:00;True|2026-02-27T08:48:32.3741487+08:00;False|2026-02-27T08:47:49.7647299+08:00;True|2026-02-26T13:55:29.1843761+08:00;True|2026-02-26T10:17:02.6775428+08:00;False|2026-02-26T10:15:56.8080083+08:00;True|2026-02-25T16:35:36.1616346+08:00;False|2026-02-25T16:35:02.7930400+08:00;True|2026-02-25T15:14:31.7665279+08:00;True|2026-02-25T15:06:38.2831461+08:00;True|2026-02-25T14:53:16.9553043+08:00;True|2026-02-25T14:18:12.0055193+08:00;True|2026-02-25T14:11:45.2316738+08:00;True|2026-02-25T14:02:16.3161429+08:00;True|2026-02-25T13:47:25.4930099+08:00;False|2026-02-25T13:46:34.1837894+08:00;True|2026-02-24T10:25:01.2146652+08:00;True|2026-02-24T10:16:06.3505078+08:00;True|2026-02-24T10:08:41.7064926+08:00;False|2026-02-24T10:07:25.4868308+08:00;True|2026-02-21T14:56:37.2206752+08:00;True|2026-02-21T14:53:44.6277903+08:00;True|2026-02-21T14:40:10.4687091+08:00;False|2026-02-21T14:39:13.1736140+08:00;True|2026-02-11T11:45:25.6746436+08:00;True|2026-02-11T11:44:47.3185555+08:00;True|2026-02-11T10:54:59.0679758+08:00;True|2026-02-11T10:43:35.2341241+08:00;True|2026-02-11T10:36:26.6768242+08:00;True|2026-02-11T10:26:54.7470684+08:00;True|2026-02-11T10:26:14.5696000+08:00;True|2026-02-11T10:19:17.3267746+08:00;True|2026-02-11T10:03:08.9096446+08:00;True|2026-02-11T10:00:03.1731421+08:00;False|2026-02-11T09:58:47.2916714+08:00;True|2026-02-10T15:11:02.0203382+08:00;True|2026-02-10T15:07:21.6761915+08:00;True|2026-02-10T14:56:44.3660951+08:00;True|2026-02-10T14:42:24.1573010+08:00;True|2026-02-10T14:17:49.6012996+08:00;True|2026-02-10T10:54:27.8849732+08:00;True|2026-02-10T10:37:09.4615737+08:00;True|2026-02-10T10:32:50.2882198+08:00;True|2026-02-10T10:16:38.5004114+08:00;True|2026-02-10T10:04:58.3653257+08:00;False|2026-02-10T10:04:05.6938724+08:00;True|2026-02-09T11:58:12.9122757+08:00;True|2026-02-09T11:52:51.2402774+08:00;True|2026-02-09T11:47:15.5230979+08:00;True|2026-02-09T10:53:15.6587025+08:00;False|2026-02-09T10:52:01.4586729+08:00;True|2026-02-05T12:04:14.1139398+08:00;True|2026-02-05T10:00:41.8883921+08:00;False|2026-02-05T09:59:49.2086159+08:00;True|2026-02-04T13:30:53.8564398+08:00;True|2026-02-04T13:30:06.5486103+08:00;True|2026-02-04T13:21:44.7322601+08:00;True|2026-02-04T13:15:45.0093895+08:00;True|2026-02-04T13:06:30.4891537+08:00;False|2026-02-04T13:05:35.5287589+08:00;True|2026-02-04T12:39:42.2682329+08:00;True|2026-02-04T12:21:52.9722100+08:00;True|2026-02-04T12:16:07.8303016+08:00;True|2026-02-04T12:08:43.8268899+08:00;True|2026-02-04T12:03:26.1174616+08:00;True|2026-02-04T10:33:15.5394044+08:00;False|2026-02-04T10:32:30.7038502+08:00;True|2026-02-02T15:42:04.9554792+08:00;True|2026-02-02T15:39:28.7017318+08:00;True|2026-02-02T15:38:33.5592835+08:00;True|2026-02-02T15:34:24.8450917+08:00;True|2026-02-02T15:30:36.5990146+08:00;True|2026-02-02T15:09:46.1965065+08:00;True|2026-02-02T15:09:24.9794288+08:00;True|2026-02-02T15:05:46.0763516+08:00;True|2026-02-02T14:56:30.1210013+08:00;True|2026-02-02T14:52:50.7435709+08:00;True|2026-02-02T14:47:49.5891710+08:00;True|2026-02-02T14:43:23.0006294+08:00;True|2026-02-02T14:31:10.1220612+08:00;True|2026-02-02T14:21:15.6540317+08:00;True|2026-02-02T14:15:41.6183116+08:00;True|2026-02-02T14:11:32.1234982+08:00;True|2026-02-02T14:01:34.6298901+08:00;True|2026-02-02T13:55:03.4760402+08:00;True|2026-02-02T13:49:00.0420220+08:00;True|2026-02-02T13:17:17.0678676+08:00;False|2026-02-02T13:15:46.0360589+08:00;False|2026-02-02T13:15:27.1689505+08:00;False|2026-02-02T13:14:27.3078641+08:00;True|2026-02-02T12:55:41.9272586+08:00;True|2026-02-02T12:55:22.0826476+08:00;True|2026-02-02T12:09:21.8247404+08:00;True|2026-02-02T12:03:58.9256304+08:00;True|2026-02-02T11:56:01.5744871+08:00;True|2026-02-02T11:42:30.2218073+08:00;True|2026-02-02T10:59:29.6077968+08:00;False|2026-02-02T10:59:08.7803594+08:00;True|2026-01-29T14:40:47.4658031+08:00;True|2026-01-29T14:36:18.2141550+08:00;True|2026-01-29T14:32:52.4872179+08:00;True|2026-01-29T14:32:06.4197291+08:00;True|2026-01-29T14:09:33.9372276+08:00;True|2026-01-29T14:08:17.6503129+08:00;True|2026-01-29T14:06:27.5784162+08:00;True|2026-01-29T13:10:48.6581055+08:00;True|2026-01-29T13:07:28.5589276+08:00;True|2026-01-29T12:44:24.3707488+08:00;True|2026-01-29T12:42:34.6204068+08:00;True|2026-01-29T12:39:55.3867683+08:00;True|2026-01-29T12:29:41.8565928+08:00;True|2026-01-29T12:17:04.5932345+08:00;True|2026-01-29T10:08:23.4550691+08:00;True|2026-01-29T10:04:05.4236307+08:00;False|2026-01-29T10:03:18.4044168+08:00;True|2026-01-28T16:00:38.3698743+08:00;True|2026-01-28T14:15:04.1203132+08:00;True|2026-01-28T14:03:32.3230252+08:00;False|2026-01-28T14:02:41.6157812+08:00;True|2026-01-28T13:18:24.5590390+08:00;True|2026-01-28T13:10:49.5716734+08:00;True|2026-01-28T12:25:03.3201915+08:00;True|2026-01-28T12:24:37.6029904+08:00;True|2026-01-28T12:16:13.3862190+08:00;True|2026-01-28T11:43:57.8268938+08:00;True|2026-01-28T10:57:22.9246991+08:00;True|2026-01-28T10:49:34.6185686+08:00;True|2026-01-28T10:44:07.6308515+08:00;True|2026-01-28T10:36:00.0391721+08:00;True|2026-01-28T10:27:26.1658915+08:00;False|2026-01-28T10:27:00.5898601+08:00;True|2026-01-27T15:02:41.1819512+08:00;True|2026-01-27T14:55:32.3962262+08:00;True|2026-01-27T14:31:09.0105130+08:00;True|2026-01-27T13:19:08.8705541+08:00;True|2026-01-27T11:43:17.0109305+08:00;True|2026-01-27T10:53:13.5941761+08:00;True|2026-01-27T10:49:18.5740094+08:00;True|2026-01-27T10:43:29.4337654+08:00;True|2026-01-27T10:00:49.1779297+08:00;False|2026-01-27T10:00:34.2083888+08:00;True|2026-01-26T16:29:09.5100352+08:00;False|2026-01-26T16:29:04.6554601+08:00;False|2026-01-26T14:39:05.7640208+08:00;True|2026-01-26T09:57:23.8775907+08:00;False|2026-01-26T09:56:43.8599383+08:00;True|2026-01-26T09:37:16.8828589+08:00;False|2026-01-26T09:36:35.9597492+08:00;True|2026-01-25T15:20:11.0096169+08:00;True|2026-01-25T14:52:25.7167654+08:00;True|2026-01-25T14:28:16.6779637+08:00;False|2026-01-25T14:27:32.6753765+08:00;True|2026-01-23T16:17:17.9227805+08:00;True|2026-01-23T14:37:25.7929932+08:00;True|2026-01-23T14:32:25.7611106+08:00;False|2026-01-23T14:31:28.4811198+08:00;True|2026-01-22T09:55:07.0908298+08:00;True|2026-01-22T09:38:49.9102490+08:00;False|2026-01-22T09:37:53.0384929+08:00;True|2026-01-21T16:50:27.5625267+08:00;True|2026-01-21T10:50:18.7634322+08:00;True|2026-01-21T10:47:56.7913811+08:00;True|2026-01-21T10:41:46.5883817+08:00;True|2026-01-21T09:29:22.5824101+08:00;False|2026-01-21T09:28:13.4362586+08:00;True|2026-01-20T14:26:36.7806712+08:00;True|2026-01-20T13:13:01.3064754+08:00;False|2026-01-20T13:12:08.1800841+08:00;True|2026-01-20T10:28:19.5250951+08:00;True|2026-01-20T10:27:41.5947282+08:00;True|2026-01-20T10:23:10.6474490+08:00;True|2026-01-20T10:07:24.8412652+08:00;True|2026-01-20T09:53:19.8583529+08:00;True|2026-01-20T08:21:20.5302494+08:00;False|2026-01-20T08:20:24.6093320+08:00;True|2026-01-19T15:58:34.1439056+08:00;True|2026-01-19T15:56:47.6488483+08:00;True|2026-01-19T15:12:36.9286562+08:00;True|2026-01-19T14:55:17.2807312+08:00;True|2026-01-19T14:47:03.8892836+08:00;True|2026-01-19T14:36:15.0507410+08:00;True|2026-01-19T14:26:05.5060287+08:00;True|2026-01-19T13:50:54.8654304+08:00;True|2026-01-19T13:37:47.2294303+08:00;True|2026-01-19T13:20:13.3781676+08:00;True|2026-01-19T13:07:18.8111360+08:00;True|2026-01-19T13:01:15.1432453+08:00;True|2026-01-19T11:54:26.6582081+08:00;True|2026-01-19T11:23:28.6100843+08:00;True|2026-01-19T08:41:23.8724527+08:00;True|2026-01-19T08:34:06.3247836+08:00;True|2026-01-19T07:48:11.5052413+08:00;False|2026-01-19T07:47:21.4586297+08:00;True|2026-01-18T14:27:24.9640228+08:00;True|2026-01-18T13:21:44.9690334+08:00;False|2026-01-18T13:20:08.6314025+08:00;False|2026-01-16T16:53:24.3290896+08:00;True|2026-01-16T09:03:14.4122067+08:00;True|2026-01-16T08:44:23.0342932+08:00;False|2026-01-16T08:43:34.3488415+08:00;True|2026-01-15T16:27:10.8480719+08:00;False|2026-01-15T16:26:06.6002625+08:00;True|2026-01-15T13:04:43.0602637+08:00;</History>
+ <History>True|2026-03-25T08:35:08.8050103Z;True|2026-03-25T15:37:15.6317912+08:00;True|2026-03-25T15:27:23.3932111+08:00;True|2026-03-25T15:11:11.1967438+08:00;True|2026-03-25T15:00:30.5147369+08:00;True|2026-03-25T14:52:56.0204639+08:00;True|2026-03-25T14:47:51.3529176+08:00;True|2026-03-25T14:46:04.5196908+08:00;True|2026-03-25T14:40:04.4992796+08:00;True|2026-03-25T14:38:45.0508837+08:00;True|2026-03-25T13:40:00.6412255+08:00;True|2026-03-25T13:17:17.5126232+08:00;True|2026-03-25T13:05:28.8923666+08:00;True|2026-03-25T11:16:11.6477493+08:00;True|2026-03-25T10:56:54.5866590+08:00;False|2026-03-25T10:55:40.1765744+08:00;True|2026-03-24T08:56:28.1340424+08:00;True|2026-03-24T08:11:40.8167004+08:00;False|2026-03-24T08:10:24.5227115+08:00;True|2026-03-23T16:52:06.1962112+08:00;True|2026-03-23T10:48:43.9146974+08:00;False|2026-03-23T10:47:37.6567528+08:00;True|2026-03-23T10:21:45.2785227+08:00;False|2026-03-23T10:21:38.6946638+08:00;True|2026-03-20T13:20:00.4199413+08:00;False|2026-03-20T13:19:48.2280600+08:00;True|2026-03-19T16:53:44.5050326+08:00;True|2026-03-19T10:10:35.5101923+08:00;False|2026-03-19T10:10:15.7270659+08:00;True|2026-03-18T19:51:55.1022153+08:00;True|2026-03-18T19:41:13.5178535+08:00;False|2026-03-18T19:40:38.2085412+08:00;True|2026-03-18T09:40:21.0697989+08:00;True|2026-03-18T09:34:25.1335941+08:00;False|2026-03-18T09:33:56.8767961+08:00;False|2026-03-17T11:45:46.0943251+08:00;True|2026-03-16T14:55:19.5092172+08:00;True|2026-03-16T14:39:12.2885876+08:00;True|2026-03-16T13:20:59.6155796+08:00;True|2026-03-16T12:53:38.9806066+08:00;False|2026-03-16T12:53:28.1149911+08:00;True|2026-03-16T10:21:54.6583129+08:00;False|2026-03-16T10:20:22.8166196+08:00;True|2026-03-13T13:56:44.7436815+08:00;True|2026-03-13T13:48:09.2962246+08:00;True|2026-03-13T10:01:06.8006672+08:00;False|2026-03-13T09:59:31.4203821+08:00;True|2026-03-09T01:54:24.1336085+08:00;False|2026-03-09T01:53:17.3398700+08:00;True|2026-03-09T01:28:43.0746681+08:00;True|2026-03-09T00:35:43.7572081+08:00;False|2026-03-09T00:34:44.1380553+08:00;True|2026-03-02T10:58:08.4918461+08:00;True|2026-02-28T14:36:37.1813756+08:00;True|2026-02-28T09:10:06.2035727+08:00;True|2026-02-28T08:45:06.8758170+08:00;False|2026-02-28T08:45:00.2780485+08:00;True|2026-02-27T16:29:24.9278951+08:00;False|2026-02-27T16:29:01.8985145+08:00;True|2026-02-27T15:25:58.1156917+08:00;False|2026-02-27T15:25:50.1203408+08:00;True|2026-02-27T08:48:32.3741487+08:00;False|2026-02-27T08:47:49.7647299+08:00;True|2026-02-26T13:55:29.1843761+08:00;True|2026-02-26T10:17:02.6775428+08:00;False|2026-02-26T10:15:56.8080083+08:00;True|2026-02-25T16:35:36.1616346+08:00;False|2026-02-25T16:35:02.7930400+08:00;True|2026-02-25T15:14:31.7665279+08:00;True|2026-02-25T15:06:38.2831461+08:00;True|2026-02-25T14:53:16.9553043+08:00;True|2026-02-25T14:18:12.0055193+08:00;True|2026-02-25T14:11:45.2316738+08:00;True|2026-02-25T14:02:16.3161429+08:00;True|2026-02-25T13:47:25.4930099+08:00;False|2026-02-25T13:46:34.1837894+08:00;True|2026-02-24T10:25:01.2146652+08:00;True|2026-02-24T10:16:06.3505078+08:00;True|2026-02-24T10:08:41.7064926+08:00;False|2026-02-24T10:07:25.4868308+08:00;True|2026-02-21T14:56:37.2206752+08:00;True|2026-02-21T14:53:44.6277903+08:00;True|2026-02-21T14:40:10.4687091+08:00;False|2026-02-21T14:39:13.1736140+08:00;True|2026-02-11T11:45:25.6746436+08:00;True|2026-02-11T11:44:47.3185555+08:00;True|2026-02-11T10:54:59.0679758+08:00;True|2026-02-11T10:43:35.2341241+08:00;True|2026-02-11T10:36:26.6768242+08:00;True|2026-02-11T10:26:54.7470684+08:00;True|2026-02-11T10:26:14.5696000+08:00;True|2026-02-11T10:19:17.3267746+08:00;True|2026-02-11T10:03:08.9096446+08:00;True|2026-02-11T10:00:03.1731421+08:00;False|2026-02-11T09:58:47.2916714+08:00;True|2026-02-10T15:11:02.0203382+08:00;True|2026-02-10T15:07:21.6761915+08:00;True|2026-02-10T14:56:44.3660951+08:00;True|2026-02-10T14:42:24.1573010+08:00;True|2026-02-10T14:17:49.6012996+08:00;True|2026-02-10T10:54:27.8849732+08:00;True|2026-02-10T10:37:09.4615737+08:00;True|2026-02-10T10:32:50.2882198+08:00;True|2026-02-10T10:16:38.5004114+08:00;True|2026-02-10T10:04:58.3653257+08:00;False|2026-02-10T10:04:05.6938724+08:00;True|2026-02-09T11:58:12.9122757+08:00;True|2026-02-09T11:52:51.2402774+08:00;True|2026-02-09T11:47:15.5230979+08:00;True|2026-02-09T10:53:15.6587025+08:00;False|2026-02-09T10:52:01.4586729+08:00;True|2026-02-05T12:04:14.1139398+08:00;True|2026-02-05T10:00:41.8883921+08:00;False|2026-02-05T09:59:49.2086159+08:00;True|2026-02-04T13:30:53.8564398+08:00;True|2026-02-04T13:30:06.5486103+08:00;True|2026-02-04T13:21:44.7322601+08:00;True|2026-02-04T13:15:45.0093895+08:00;True|2026-02-04T13:06:30.4891537+08:00;False|2026-02-04T13:05:35.5287589+08:00;True|2026-02-04T12:39:42.2682329+08:00;True|2026-02-04T12:21:52.9722100+08:00;True|2026-02-04T12:16:07.8303016+08:00;True|2026-02-04T12:08:43.8268899+08:00;True|2026-02-04T12:03:26.1174616+08:00;True|2026-02-04T10:33:15.5394044+08:00;False|2026-02-04T10:32:30.7038502+08:00;True|2026-02-02T15:42:04.9554792+08:00;True|2026-02-02T15:39:28.7017318+08:00;True|2026-02-02T15:38:33.5592835+08:00;True|2026-02-02T15:34:24.8450917+08:00;True|2026-02-02T15:30:36.5990146+08:00;True|2026-02-02T15:09:46.1965065+08:00;True|2026-02-02T15:09:24.9794288+08:00;True|2026-02-02T15:05:46.0763516+08:00;True|2026-02-02T14:56:30.1210013+08:00;True|2026-02-02T14:52:50.7435709+08:00;True|2026-02-02T14:47:49.5891710+08:00;True|2026-02-02T14:43:23.0006294+08:00;True|2026-02-02T14:31:10.1220612+08:00;True|2026-02-02T14:21:15.6540317+08:00;True|2026-02-02T14:15:41.6183116+08:00;True|2026-02-02T14:11:32.1234982+08:00;True|2026-02-02T14:01:34.6298901+08:00;True|2026-02-02T13:55:03.4760402+08:00;True|2026-02-02T13:49:00.0420220+08:00;True|2026-02-02T13:17:17.0678676+08:00;False|2026-02-02T13:15:46.0360589+08:00;False|2026-02-02T13:15:27.1689505+08:00;False|2026-02-02T13:14:27.3078641+08:00;True|2026-02-02T12:55:41.9272586+08:00;True|2026-02-02T12:55:22.0826476+08:00;True|2026-02-02T12:09:21.8247404+08:00;True|2026-02-02T12:03:58.9256304+08:00;True|2026-02-02T11:56:01.5744871+08:00;True|2026-02-02T11:42:30.2218073+08:00;True|2026-02-02T10:59:29.6077968+08:00;False|2026-02-02T10:59:08.7803594+08:00;True|2026-01-29T14:40:47.4658031+08:00;True|2026-01-29T14:36:18.2141550+08:00;True|2026-01-29T14:32:52.4872179+08:00;True|2026-01-29T14:32:06.4197291+08:00;True|2026-01-29T14:09:33.9372276+08:00;True|2026-01-29T14:08:17.6503129+08:00;True|2026-01-29T14:06:27.5784162+08:00;True|2026-01-29T13:10:48.6581055+08:00;True|2026-01-29T13:07:28.5589276+08:00;True|2026-01-29T12:44:24.3707488+08:00;True|2026-01-29T12:42:34.6204068+08:00;True|2026-01-29T12:39:55.3867683+08:00;True|2026-01-29T12:29:41.8565928+08:00;True|2026-01-29T12:17:04.5932345+08:00;True|2026-01-29T10:08:23.4550691+08:00;True|2026-01-29T10:04:05.4236307+08:00;False|2026-01-29T10:03:18.4044168+08:00;True|2026-01-28T16:00:38.3698743+08:00;True|2026-01-28T14:15:04.1203132+08:00;True|2026-01-28T14:03:32.3230252+08:00;False|2026-01-28T14:02:41.6157812+08:00;True|2026-01-28T13:18:24.5590390+08:00;True|2026-01-28T13:10:49.5716734+08:00;True|2026-01-28T12:25:03.3201915+08:00;True|2026-01-28T12:24:37.6029904+08:00;True|2026-01-28T12:16:13.3862190+08:00;True|2026-01-28T11:43:57.8268938+08:00;True|2026-01-28T10:57:22.9246991+08:00;True|2026-01-28T10:49:34.6185686+08:00;True|2026-01-28T10:44:07.6308515+08:00;True|2026-01-28T10:36:00.0391721+08:00;True|2026-01-28T10:27:26.1658915+08:00;False|2026-01-28T10:27:00.5898601+08:00;True|2026-01-27T15:02:41.1819512+08:00;True|2026-01-27T14:55:32.3962262+08:00;True|2026-01-27T14:31:09.0105130+08:00;True|2026-01-27T13:19:08.8705541+08:00;True|2026-01-27T11:43:17.0109305+08:00;True|2026-01-27T10:53:13.5941761+08:00;True|2026-01-27T10:49:18.5740094+08:00;True|2026-01-27T10:43:29.4337654+08:00;True|2026-01-27T10:00:49.1779297+08:00;False|2026-01-27T10:00:34.2083888+08:00;True|2026-01-26T16:29:09.5100352+08:00;False|2026-01-26T16:29:04.6554601+08:00;False|2026-01-26T14:39:05.7640208+08:00;True|2026-01-26T09:57:23.8775907+08:00;False|2026-01-26T09:56:43.8599383+08:00;True|2026-01-26T09:37:16.8828589+08:00;False|2026-01-26T09:36:35.9597492+08:00;True|2026-01-25T15:20:11.0096169+08:00;True|2026-01-25T14:52:25.7167654+08:00;True|2026-01-25T14:28:16.6779637+08:00;False|2026-01-25T14:27:32.6753765+08:00;True|2026-01-23T16:17:17.9227805+08:00;True|2026-01-23T14:37:25.7929932+08:00;True|2026-01-23T14:32:25.7611106+08:00;False|2026-01-23T14:31:28.4811198+08:00;True|2026-01-22T09:55:07.0908298+08:00;True|2026-01-22T09:38:49.9102490+08:00;False|2026-01-22T09:37:53.0384929+08:00;True|2026-01-21T16:50:27.5625267+08:00;True|2026-01-21T10:50:18.7634322+08:00;True|2026-01-21T10:47:56.7913811+08:00;True|2026-01-21T10:41:46.5883817+08:00;True|2026-01-21T09:29:22.5824101+08:00;False|2026-01-21T09:28:13.4362586+08:00;True|2026-01-20T14:26:36.7806712+08:00;True|2026-01-20T13:13:01.3064754+08:00;False|2026-01-20T13:12:08.1800841+08:00;True|2026-01-20T10:28:19.5250951+08:00;True|2026-01-20T10:27:41.5947282+08:00;True|2026-01-20T10:23:10.6474490+08:00;True|2026-01-20T10:07:24.8412652+08:00;True|2026-01-20T09:53:19.8583529+08:00;True|2026-01-20T08:21:20.5302494+08:00;False|2026-01-20T08:20:24.6093320+08:00;True|2026-01-19T15:58:34.1439056+08:00;True|2026-01-19T15:56:47.6488483+08:00;True|2026-01-19T15:12:36.9286562+08:00;True|2026-01-19T14:55:17.2807312+08:00;True|2026-01-19T14:47:03.8892836+08:00;True|2026-01-19T14:36:15.0507410+08:00;True|2026-01-19T14:26:05.5060287+08:00;True|2026-01-19T13:50:54.8654304+08:00;True|2026-01-19T13:37:47.2294303+08:00;True|2026-01-19T13:20:13.3781676+08:00;True|2026-01-19T13:07:18.8111360+08:00;True|2026-01-19T13:01:15.1432453+08:00;True|2026-01-19T11:54:26.6582081+08:00;True|2026-01-19T11:23:28.6100843+08:00;True|2026-01-19T08:41:23.8724527+08:00;True|2026-01-19T08:34:06.3247836+08:00;True|2026-01-19T07:48:11.5052413+08:00;False|2026-01-19T07:47:21.4586297+08:00;True|2026-01-18T14:27:24.9640228+08:00;True|2026-01-18T13:21:44.9690334+08:00;False|2026-01-18T13:20:08.6314025+08:00;False|2026-01-16T16:53:24.3290896+08:00;True|2026-01-16T09:03:14.4122067+08:00;True|2026-01-16T08:44:23.0342932+08:00;False|2026-01-16T08:43:34.3488415+08:00;True|2026-01-15T16:27:10.8480719+08:00;False|2026-01-15T16:26:06.6002625+08:00;True|2026-01-15T13:04:43.0602637+08:00;</History>
</PropertyGroup>
<ItemGroup>
<File Include="apiapp.json">
@@ -125,6 +125,15 @@
<File Include="bin/Microsoft.CSharp.dll">
<publishTime>09/26/2012 03:16:08</publishTime>
</File>
+ <File Include="bin/Microsoft.IdentityModel.JsonWebTokens.dll">
+ <publishTime>11/21/2023 06:59:58</publishTime>
+ </File>
+ <File Include="bin/Microsoft.IdentityModel.Logging.dll">
+ <publishTime>11/21/2023 07:01:42</publishTime>
+ </File>
+ <File Include="bin/Microsoft.IdentityModel.Tokens.dll">
+ <publishTime>11/21/2023 07:08:26</publishTime>
+ </File>
<File Include="bin/Microsoft.Owin.Cors.dll">
<publishTime>01/19/2019 04:50:50</publishTime>
</File>
@@ -234,7 +243,7 @@
<publishTime>09/26/2012 03:16:08</publishTime>
</File>
<File Include="bin/System.IdentityModel.Tokens.Jwt.dll">
- <publishTime>08/19/2014 18:03:34</publishTime>
+ <publishTime>11/21/2023 06:58:04</publishTime>
</File>
<File Include="bin/System.Memory.dll">
<publishTime>04/18/2019 00:24:34</publishTime>
@@ -330,13 +339,13 @@
<publishTime>11/24/2014 19:18:48</publishTime>
</File>
<File Include="bin/WebAPI.dll">
- <publishTime>03/24/2026 08:56:12</publishTime>
+ <publishTime>03/25/2026 16:34:51</publishTime>
</File>
<File Include="bin/WebAPI.pdb">
- <publishTime>03/24/2026 08:56:12</publishTime>
+ <publishTime>03/25/2026 16:34:51</publishTime>
</File>
<File Include="bin/WebAPI.XmlSerializers.dll">
- <publishTime>03/24/2026 08:56:25</publishTime>
+ <publishTime>03/25/2026 16:35:05</publishTime>
</File>
<File Include="bin/WebGrease.dll">
<publishTime>07/18/2013 01:03:52</publishTime>
@@ -441,7 +450,7 @@
<publishTime>04/21/2025 11:46:16</publishTime>
</File>
<File Include="packages.config">
- <publishTime>03/04/2026 13:17:49</publishTime>
+ <publishTime>03/24/2026 16:14:20</publishTime>
</File>
<File Include="Properties/PublishProfiles/JFAPI.pubxml.user">
<publishTime>12/07/2025 12:01:10</publishTime>
@@ -561,7 +570,7 @@
<publishTime>04/21/2025 11:46:17</publishTime>
</File>
<File Include="Web.config">
- <publishTime>03/23/2026 16:52:04</publishTime>
+ <publishTime>03/25/2026 10:56:54</publishTime>
</File>
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/WebAPI/Service/JwtAuthorizeAttribute.cs b/WebAPI/Service/JwtAuthorizeAttribute.cs
index d641d3b..ca96e21 100644
--- a/WebAPI/Service/JwtAuthorizeAttribute.cs
+++ b/WebAPI/Service/JwtAuthorizeAttribute.cs
@@ -7,37 +7,64 @@
using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
+using WebAPI.Models;
using WebAPI.Utility;
public class JwtAuthorizeAttribute : AuthorizationFilterAttribute
{
+ private json objjson = new json();
+ private SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
+ private Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
+ private string campanyName = "";
+
+ public JwtAuthorizeAttribute()
+ {
+ if (oSystemParameter.ShowBill(ref DBUtility.ClsPub.sErrInfo))
+ {
+ campanyName = oSystemParameter.omodel.WMS_CampanyName;
+ }
+ }
+
+
// 鍚屾閴存潈
public override void OnAuthorization(HttpActionContext actionContext)
{
- // 妫�鏌ュ尶鍚嶈闂�
- if (IsAnonymousAllowed(actionContext)) return;
-
- // 鑾峰彇Token
- var token = GetTokenFromHeader(actionContext);
- if (string.IsNullOrEmpty(token))
+ try
{
- HandleUnauthorized(actionContext);
- return;
- }
+ // 妫�鏌ュ尶鍚嶈闂�
+ if (IsAnonymousAllowed(actionContext)) return;
- // 楠岃瘉Token
- var principal = JWTHelper.ValidateToken(token, "123");
- if (principal == null)
+ // 鑾峰彇Token
+ var token = GetTokenFromHeader(actionContext);
+ if (string.IsNullOrEmpty(token))
+ {
+ HandleUnauthorized(actionContext);
+ return;
+ }
+
+ // 楠岃瘉Token
+ // 鍙互澧炲姞鏇寸粏绮掑害鐨勬帶鍒讹紝娣诲姞 鏍规嵁缁勭粐ID 鍒ゆ柇锛堥棶棰�: 鍏徃鍚嶄笉鑳戒娇鐢ㄤ腑鏂囷紝鍙兘闇�瑕佹坊鍔犺嫳鏂囧瓧娈碉級
+ var principal = JWTHelper.ValidateToken(token);
+ if (principal == null)
+ {
+ HandleUnauthorized(actionContext);
+ return;
+ }
+
+ // 楠岃瘉鏄惁鎷ユ湁璁块棶妯″潡鐨勬潈闄�
+ // 鏈変袱绉嶅垽鏂柟寮� 涓�绉嶆槸閫氳繃瑙掕壊鍘诲垽鏂紝涓�绉嶆槸閫氳繃鐢ㄦ埛鍘诲垽鏂� 鐩墠鏆傛椂涓嶅仛鍖哄垎锛屽悗缁彲澧炲姞绯荤粺鍙傛暟鏉ヨ繘琛屽尯鍒�
+
+
+ // 璁剧疆鐢ㄦ埛
+ actionContext.RequestContext.Principal = principal;
+ }
+ catch (Exception e)
{
- HandleUnauthorized(actionContext);
- return;
+ HandleError(actionContext, e.Message);
}
-
- // 璁剧疆鐢ㄦ埛
- actionContext.RequestContext.Principal = principal;
}
- // 寮傛閴存潈锛堟弧瓒砏ebAPI 2瑕佹眰锛屽吋瀹�.NET4.5锛�
+ // 寮傛閴存潈
public override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
OnAuthorization(actionContext);
@@ -45,7 +72,7 @@
return Task.FromResult(0);
}
- // 鏄惁鍏佽鍖垮悕璁块棶
+ // 鏄惁鍏佽鍖垮悕璁块棶(鎺у埗鍣ㄧ骇鍒拰鍔ㄤ綔绾у埆閮藉彲鐢�)
private bool IsAnonymousAllowed(HttpActionContext context)
{
return
@@ -70,7 +97,34 @@
private void HandleUnauthorized(HttpActionContext context)
{
var response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
- response.Content = new StringContent("鏈巿鏉冿紝璇风櫥褰曞悗閲嶈瘯");
+ objjson.code = "0";
+ objjson.count = 0;
+ objjson.Message = "鏈巿鏉冿紝璇风櫥褰曞悗閲嶈瘯";
+ response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(objjson),
+ System.Text.Encoding.UTF8, "application/json");
+ context.Response = response;
+ }
+
+ // 403 鏃犳潈闄�
+ private void HandleForbidden(HttpActionContext context)
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.Forbidden);
+ objjson.code = "0";
+ objjson.count = 0;
+ objjson.Message = "褰撳墠瑙掕壊鏃犳潈闄�";
+ response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(objjson),
+ System.Text.Encoding.UTF8, "application/json");
+ context.Response = response;
+ }
+
+ private void HandleError(HttpActionContext context, string ErrorInfo)
+ {
+ var response = new HttpResponseMessage(HttpStatusCode.InternalServerError);
+ objjson.code = "0";
+ objjson.count = 0;
+ objjson.Message = "鏈嶅姟鍣ㄥ紓甯�: " + ErrorInfo;
+ response.Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(objjson),
+ System.Text.Encoding.UTF8, "application/json");
context.Response = response;
}
}
\ No newline at end of file
diff --git a/WebAPI/Service/TokenAppendHandler.cs b/WebAPI/Service/TokenAppendHandler.cs
new file mode 100644
index 0000000..11409de
--- /dev/null
+++ b/WebAPI/Service/TokenAppendHandler.cs
@@ -0,0 +1,65 @@
+锘縰sing System;
+using System.Linq;
+using System.Net.Http;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Web.Http;
+using Newtonsoft.Json.Linq;
+using WebAPI.Utility;
+
+
+public class TokenAppendHandler : DelegatingHandler
+ {
+ protected override async Task<HttpResponseMessage> SendAsync(
+ HttpRequestMessage request,
+ CancellationToken cancellationToken)
+ {
+ // 1. 鍏堣璇锋眰姝e父鎵ц鍒� Action
+ var response = await base.SendAsync(request, cancellationToken);
+
+ try
+ {
+ // 2. 鍙鐞嗘垚鍔熺殑璇锋眰
+ if (response.IsSuccessStatusCode && response.Content != null)
+ {
+ // 3. 鑾峰彇鏃� token
+ var oldToken = request.Headers.GetValues("token")?.FirstOrDefault();
+ if (string.IsNullOrEmpty(oldToken))
+ return response;
+
+ // 4. 鍒ゆ柇鏄惁闇�瑕佺画鏈�
+ bool needRenew = JWTHelper.TokenAboutToExpire(oldToken);
+ if (!needRenew)
+ return response;
+
+ // 5. 鐢熸垚鏂� token
+ string newToken = JWTHelper.refreshToken(oldToken);
+
+ // 6. 璇诲彇鍘熸湰鐨勮繑鍥炴暟鎹�
+ var json = await response.Content.ReadAsStringAsync();
+ JObject obj;
+
+ if (string.IsNullOrWhiteSpace(json))
+ obj = new JObject();
+ else
+ obj = JObject.Parse(json);
+
+ // 7. 鍏抽敭锛氳拷鍔� token 瀛楁鍒拌繑鍥炰綋
+ obj["token"] = newToken;
+
+ // 8. 鏇挎崲鎴愭柊鐨勮繑鍥炲唴瀹�
+ response.Content = new StringContent(
+ obj.ToString(),
+ System.Text.Encoding.UTF8,
+ "application/json");
+ }
+ }
+ catch
+ {
+
+ }
+
+ return response;
+ }
+
+ }
diff --git a/WebAPI/Utility/JWTHelper.cs b/WebAPI/Utility/JWTHelper.cs
index 824a5b9..e0a2400 100644
--- a/WebAPI/Utility/JWTHelper.cs
+++ b/WebAPI/Utility/JWTHelper.cs
@@ -22,7 +22,7 @@
new SymmetricSecurityKey(Encoding.UTF8.GetBytes(SecretKey));
// 绛惧彂 Token
- public static string GenerateToken(string userId, string userName, string HCampanyName)
+ public static string GenerateToken(string userId, string userName, string HCampanyName= "zjzyms")
{
var claims = new[]
{
@@ -45,7 +45,7 @@
}
// 楠岃瘉 Token 骞惰繑鍥� ClaimsPrincipal
- public static ClaimsPrincipal ValidateToken(string token, string HCampanyName)
+ public static ClaimsPrincipal ValidateToken(string token, string HCampanyName= "zjzyms")
{
var handler = new JwtSecurityTokenHandler();
@@ -75,5 +75,28 @@
return null;
}
}
+
+ // 鍒锋柊Token
+ public static string refreshToken(string token)
+ {
+ var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
+ var czybm = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
+ var zymm = jwt.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Name)?.Value;
+ // 閫氳繃涓婁竴涓猼oken鐨勫�煎埛鏂皌oken
+ return GenerateToken(czybm, zymm);
+ }
+
+ // 鍒ゆ柇Token 鏄惁鍗冲皢杩囨湡
+ public static bool TokenAboutToExpire(string token)
+ {
+ var jwt = new JwtSecurityTokenHandler().ReadJwtToken(token);
+ var validTo = jwt.ValidTo;
+
+ if(validTo.Subtract(DateTime.UtcNow).TotalMinutes < 5)
+ {
+ return true;
+ }
+ return false;
+ }
}
}
\ No newline at end of file
diff --git a/WebAPI/WebAPI.csproj b/WebAPI/WebAPI.csproj
index 8ebef0a..2ab3dd5 100644
--- a/WebAPI/WebAPI.csproj
+++ b/WebAPI/WebAPI.csproj
@@ -1251,6 +1251,7 @@
</Compile>
<Compile Include="Utility\JWTHelper.cs" />
<Compile Include="Utility\ServerTools.cs" />
+ <Compile Include="Service\TokenAppendHandler.cs" />
<Compile Include="Utility\Util.cs" />
<Compile Include="Code\Common.cs" />
<Compile Include="Code\Test2.cs" />
diff --git a/WebAPI/WebAPI.csproj.user b/WebAPI/WebAPI.csproj.user
index 342ebe2..f41c544 100644
--- a/WebAPI/WebAPI.csproj.user
+++ b/WebAPI/WebAPI.csproj.user
@@ -12,7 +12,7 @@
<UseGlobalApplicationHostFile />
<NameOfLastUsedPublishProfile>D:\gz\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile1.pubxml</NameOfLastUsedPublishProfile>
<NameOfLastUsedPublishProfile>D:\gz\MES-WEB-API\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile8.pubxml</NameOfLastUsedPublishProfile>
- <NameOfLastUsedPublishProfile>D:\宸ヤ綔浠g爜\鏅轰簯杩堟�漒MES\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile2.pubxml</NameOfLastUsedPublishProfile>
+ <NameOfLastUsedPublishProfile>D:\WorkBench\MES-WEB-API\WebAPI\Properties\PublishProfiles\FolderProfile4.pubxml</NameOfLastUsedPublishProfile>
<ProjectView>ShowAllFiles</ProjectView>
</PropertyGroup>
<ProjectExtensions>
--
Gitblit v1.9.1