From f43b7df8400f4fcffc9f19dca0888d61e2b33d5f Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 12 三月 2025 18:41:52 +0800
Subject: [PATCH] WMS系统添加PDA权限,PDA程序

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Authorization/AuthorizationSetup.cs |   67 +++++++++++++++++++++++++++++++++
 1 files changed, 67 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Authorization/AuthorizationSetup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Authorization/AuthorizationSetup.cs"
new file mode 100644
index 0000000..31cff24
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Authorization/AuthorizationSetup.cs"
@@ -0,0 +1,67 @@
+锘縰sing Microsoft.AspNetCore.Authentication.JwtBearer;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.IdentityModel.Tokens;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Claims;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Const;
+using WIDESEA_Core.Helper;
+
+namespace WIDESEA_Core.Authorization
+{
+    /// <summary>
+    /// 绯荤粺 鎺堟潈鏈嶅姟 閰嶇疆
+    /// </summary>
+    public static class AuthorizationSetup
+    {
+        /// <summary>
+        /// 绯荤粺 鎺堟潈鏈嶅姟 閰嶇疆
+        /// </summary>
+        /// <param name="services"></param>
+        /// <exception cref="ArgumentNullException"></exception>
+        public static void AddAuthorizationSetup(this IServiceCollection services)
+        {
+            if (services == null) throw new ArgumentNullException(nameof(services));
+            
+            services.AddAuthentication(options =>
+            {
+                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
+                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
+                options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
+            })
+             .AddJwtBearer(options =>
+             {
+                 options.TokenValidationParameters = new TokenValidationParameters
+                 {
+                     SaveSigninToken = true,//淇濆瓨token,鍚庡彴楠岃瘉token鏄惁鐢熸晥(閲嶈)
+                     ValidateIssuer = true,//鏄惁楠岃瘉Issuer
+                     ValidateAudience = true,//鏄惁楠岃瘉Audience
+                     ValidateLifetime = true,//鏄惁楠岃瘉澶辨晥鏃堕棿
+                     ValidateIssuerSigningKey = true,//鏄惁楠岃瘉SecurityKey
+                     ValidAudience = AppSecret.Audience,//Audience
+                     ValidIssuer = AppSecret.Issuer,//Issuer锛岃繖涓ら」鍜屽墠闈㈢鍙慾wt鐨勮缃竴鑷�
+                     IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(AppSecret.JWT))
+                 };
+                 options.Events = new JwtBearerEvents()
+                 {
+                     OnChallenge = context =>
+                     {
+                         context.HandleResponse();
+                         context.Response.Clear();
+                         context.Response.ContentType = "application/json";
+                         context.Response.StatusCode = 401;
+                         context.Response.WriteAsync(new { message = "鎺堟潈鏈�氳繃", status = false, code = 401 }.Serialize());
+                         return Task.CompletedTask;
+                     }
+                 };
+             });
+
+            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
+        }
+    }
+}

--
Gitblit v1.9.3