78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
| using System.IO;
 | |
| using System.Security.Cryptography;
 | |
| using Microsoft.AspNetCore.Builder;
 | |
| using Microsoft.AspNetCore.Hosting;
 | |
| using Microsoft.Extensions.Configuration;
 | |
| using Microsoft.Extensions.DependencyInjection;
 | |
| using Microsoft.Extensions.Hosting;
 | |
| using Microsoft.OpenApi.Models;
 | |
| using ZhiZhun.AuthenticationCenter.GrpcService;
 | |
| using ZhiZhun.AuthenticationCenter.Utility;
 | |
| using ZhiZhun.AuthenticationCenter.Utility.RSA;
 | |
| 
 | |
| namespace ZhiZhun.AuthenticationCenter
 | |
| {
 | |
|     public class Startup
 | |
|     {
 | |
|         public Startup(IConfiguration configuration)
 | |
|         {
 | |
|             Configuration = configuration;
 | |
|         }
 | |
| 
 | |
|         public IConfiguration Configuration { get; }
 | |
| 
 | |
|         // This method gets called by the runtime. Use this method to add services to the container.
 | |
|         public void ConfigureServices(IServiceCollection services)
 | |
|         {
 | |
| 
 | |
|             services.AddControllers()
 | |
|                 .AddNewtonsoftJson();
 | |
|             services.AddSwaggerGen(c =>
 | |
|             {
 | |
|                 c.SwaggerDoc("v1", new OpenApiInfo { Title = "ZHIZHUN.AuthenticationCenter", Version = "v1" });
 | |
|             });
 | |
| 
 | |
|             #region HS256 对称可逆加密
 | |
|             //services.AddScoped<IJWTService, JWTHSService>();
 | |
|             //services.Configure<JWTTokenOptions>(this.Configuration.GetSection("JWTTokenOptions"));
 | |
|             #endregion
 | |
| 
 | |
|             #region RS256 非对称可逆加密,需要获取一次公钥
 | |
|             string keyDir = Directory.GetCurrentDirectory();
 | |
|             if (RSAHelper.TryGetKeyParameters(keyDir, true, out RSAParameters keyParams) == false)
 | |
|             {
 | |
|                 keyParams = RSAHelper.GenerateAndSaveKey(keyDir);
 | |
|             }
 | |
| 
 | |
|             services.AddScoped<IJWTService, JWTRSService>();
 | |
|             services.Configure<JWTTokenOptions>(this.Configuration.GetSection("JWTTokenOptions"));
 | |
|             #endregion
 | |
| 
 | |
|             services.AddGrpc();
 | |
| 
 | |
|         }
 | |
| 
 | |
|         // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
 | |
|         public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
 | |
|         {
 | |
|             if (env.IsDevelopment())
 | |
|             {
 | |
|                 app.UseDeveloperExceptionPage();
 | |
|             }
 | |
|             app.UseSwagger();
 | |
|             app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "ZHIZHUN.AuthenticationCenter v1"));
 | |
| 
 | |
|             app.UseRouting();
 | |
| 
 | |
|             //app.UseAuthentication();
 | |
|             //app.UseAuthorization();
 | |
| 
 | |
|             app.UseEndpoints(endpoints =>
 | |
|             {
 | |
|                 //endpoints.MapControllers();
 | |
|                 endpoints.MapGrpcService<GrpcTokenService>();
 | |
|             });
 | |
|         }
 | |
|     }
 | |
| }
 |