| 
					
				 | 
			
			
				@@ -26,6 +26,8 @@ using OASystem.API.OAMethodLib.SignalR.HubService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using OASystem.API.OAMethodLib.Auth; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using OASystem.API.OAMethodLib.Hub.HubClients; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 using Microsoft.Extensions.Options; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using Microsoft.AspNetCore.Identity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+using static OpenAI.GPT3.ObjectModels.SharedModels.IOpenAiModels; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     var builder = WebApplication.CreateBuilder(args); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var basePath = AppContext.BaseDirectory; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -127,6 +129,26 @@ builder.Services.AddScoped(options => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//#region Identity 配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//builder.Services.AddDataProtection(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+////不要用 AddIdentity , AddIdentity 是于MVC框架中的 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//builder.Services.AddIdentityCore<User>(opt => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Password.RequireDigit = false; //数字 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Password.RequireLowercase = false;//小写字母 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Password.RequireNonAlphanumeric = false;//特殊符号 例如 ¥#@!  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Password.RequireUppercase = false; //大写字母 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Password.RequiredLength = 6;//密码长度 6  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Password.RequiredUniqueChars = 1;//相同字符可以出现几次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Lockout.MaxFailedAccessAttempts = 5; //允许最多输入五次用户名/密码错误 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Lockout.DefaultLockoutTimeSpan = new TimeSpan(0, 5, 0);//锁定五分钟 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Tokens.PasswordResetTokenProvider = TokenOptions.DefaultEmailProvider; // 修改密码使用邮件【验证码模式】 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//    opt.Tokens.EmailConfirmationTokenProvider = TokenOptions.DefaultEmailProvider;  ////  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//var idBuilder = new IdentityBuilder(typeof(User), typeof(UserRole), services); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//idBuilder.AddEntityFrameworkStores<swapDbContext>().AddDefaultTokenProviders().AddRoleManager<RoleManager<UserRole>>().AddUserManager<UserManager<User>>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//#endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #region 注入Swagger注释(启用) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if (AppSettingsHelper.Get("UseSwagger").ToBool()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -206,22 +228,8 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return Task.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //options.Events = new JwtBearerEvents 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //    OnMessageReceived = context => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        // 当我们收到消息时,去获取请求中的access_token字段 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        var accessToken = context.Request.Query["access_token"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        // 如果没有就去头上找,找到了就放入我们context.token中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        if (!string.IsNullOrEmpty(accessToken)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //            context.Token = accessToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //        return Task.CompletedTask; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endregion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #region 初始化日志 
			 |