Startup.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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().AddNewtonsoftJson(o=>
  51. o.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
  52. services.AddDbContext<spDbContext>(optionsAction =>
  53. optionsAction.UseSqlServer(Configuration.GetConnectionString("DefaultConnect"))
  54. );
  55. services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();
  56. }
  57. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  58. public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  59. {
  60. if (env.IsDevelopment())
  61. {
  62. app.UseDeveloperExceptionPage();
  63. }
  64. app.UseCors(MyAllowSpecificOrigins);
  65. app.UseHttpsRedirection();
  66. app.UseRouting();
  67. app.UseAuthentication();
  68. app.UseAuthorization();
  69. app.UseEndpoints(endpoints =>
  70. {
  71. endpoints.MapControllers();
  72. });
  73. //JobKey jobKey = new JobKey("ImportReportData");
  74. //var trigger = TriggerBuilder.Create()
  75. // .WithDescription("µ¼ÈëÿÔ±¨±í")
  76. // .WithSchedule(CronScheduleBuilder.CronSchedule("0 0/2 * * * ? *").WithMisfireHandlingInstructionDoNothing())
  77. // .Build();
  78. //QuartzUtil.Add(typeof(ImportReportJob), jobKey, trigger);
  79. }
  80. }
  81. }