Startup.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using Microsoft.AspNetCore.Authentication.JwtBearer;
  2. using Microsoft.AspNetCore.Builder;
  3. using Microsoft.AspNetCore.Hosting;
  4. using Microsoft.EntityFrameworkCore;
  5. using Microsoft.Extensions.Configuration;
  6. using Microsoft.Extensions.DependencyInjection;
  7. using Microsoft.Extensions.Hosting;
  8. using Microsoft.IdentityModel.Tokens;
  9. using Quartz;
  10. using Quartz.Impl;
  11. using System;
  12. using System.Text;
  13. using wispro.sp.api.Job;
  14. namespace wispro.sp.api
  15. {
  16. public class Startup
  17. {
  18. readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
  19. public Startup(IConfiguration configuration)
  20. {
  21. Configuration = configuration;
  22. }
  23. public IConfiguration Configuration { get; }
  24. // This method gets called by the runtime. Use this method to add services to the container.
  25. public void ConfigureServices(IServiceCollection services)
  26. {
  27. services.AddCors(options =>
  28. {
  29. options.AddPolicy(MyAllowSpecificOrigins,
  30. builder =>
  31. {
  32. builder.AllowAnyOrigin()
  33. .AllowAnyMethod()
  34. .AllowAnyHeader();
  35. });
  36. });
  37. services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(option =>
  38. {
  39. option.TokenValidationParameters = new TokenValidationParameters
  40. {
  41. ValidateIssuer = false,
  42. ValidateAudience = false,
  43. ValidateLifetime = true,
  44. ValidateIssuerSigningKey = true,
  45. ValidIssuer = Configuration["jwt:Issuer"],
  46. IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["jwt:Key"])),
  47. ClockSkew = TimeSpan.Zero
  48. };
  49. });
  50. services.AddControllers().AddJsonOptions(options =>
  51. {
  52. options.JsonSerializerOptions.IgnoreNullValues = true;
  53. });
  54. services.AddDbContext<spDbContext>(optionsAction =>
  55. optionsAction.UseSqlServer(Configuration.GetConnectionString("DefaultConnect"))
  56. );
  57. services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
  58. }
  59. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  60. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  61. {
  62. if (env.IsDevelopment())
  63. {
  64. app.UseDeveloperExceptionPage();
  65. }
  66. app.UseCors(MyAllowSpecificOrigins);
  67. app.UseHttpsRedirection();
  68. app.UseRouting();
  69. app.UseAuthentication();
  70. app.UseAuthorization();
  71. app.UseEndpoints(endpoints =>
  72. {
  73. endpoints.MapControllers();
  74. });
  75. //JobKey jobKey = new JobKey("ImportReportData");
  76. //var trigger = TriggerBuilder.Create()
  77. // .WithDescription("µ¼ÈëÿÔ±¨±í")
  78. // .WithSchedule(CronScheduleBuilder.CronSchedule("0 0/2 * * * ? *").WithMisfireHandlingInstructionDoNothing())
  79. // .Build();
  80. //QuartzUtil.Add(typeof(ImportReportJob), jobKey, trigger);
  81. }
  82. }
  83. }