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