Files
juipnet/Host/Startup.cs
“wanyongkang” b562aba2b1 忽略dll文件git
2023-07-29 10:19:42 +08:00

132 lines
5.6 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using Hncore.Infrastructure.AliYun;
using Hncore.Infrastructure.WebApi;
using Hncore.Wx.Open;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.Rewrite;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using System.Net.Http;
using System.Text;
using Hncore.Wx.Open;
using Senparc.Weixin.MP.Containers;
using Senparc.CO2NET.RegisterServices;
using Senparc.Weixin.RegisterServices;
using Microsoft.Extensions.Options;
using Senparc.CO2NET;
using Senparc.Weixin;
using Senparc.Weixin.Entities;
using Senparc.Weixin.MP;
namespace Host
{
public class Startup
{
public IConfiguration Configuration { get; }
Hncore.Pass.BaseInfo.Startup _BaseInfoStartup;
Hncore.Pass.Manage.Startup _ManageStartup;
Hncore.Pass.OSS.Startup _OssStartup;
Hncore.Pass.Vpn.Startup _CourseStartup;
Hncore.Pass.Sells.Startup _SellStartup;
Hncore.Pass.PaymentCenter.Startup _PaymentCenterStartup;
public Startup(IHostingEnvironment env)
{
Configuration = env.UseAppsettings();
_BaseInfoStartup = new Hncore.Pass.BaseInfo.Startup(env);
_ManageStartup = new Hncore.Pass.Manage.Startup(env);
_OssStartup = new Hncore.Pass.OSS.Startup(env);
_CourseStartup= new Hncore.Pass.Vpn.Startup(env);
_SellStartup = new Hncore.Pass.Sells.Startup(env);
_PaymentCenterStartup = new Hncore.Pass.PaymentCenter.Startup(env);
}
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddWxApi();
//删除cookie需要
//services.Configure<CookiePolicyOptions>(options =>
//{
// options.CheckConsentNeeded = context => false;
// options.MinimumSameSitePolicy = SameSiteMode.None;
//});
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationExpanders.Add(new MobileViewLocationExpander());
});
services.AddSingleton<AliDayu>();
_OssStartup.ConfigureServices(services);
_ManageStartup.ConfigureServices(services);
_CourseStartup.ConfigureServices(services);
_SellStartup.ConfigureServices(services);
_PaymentCenterStartup.ConfigureServices(services);
//foreach(var service in services)
//{
// Console.WriteLine(service.ServiceType.FullName);
//}
services.AddSenparcGlobalServices(Configuration)//Senparc.CO2NET 全局注册
.AddSenparcWeixinServices(Configuration);//Senparc.Weixin 注册
return _BaseInfoStartup.ConfigureServices(services);
}
public void Configure(IApplicationBuilder app
, IApplicationLifetime applicationLifetime
,ILoggerFactory loggerFactory
, IHostingEnvironment env
, IHttpClientFactory httpFactory
, IServiceProvider serviceProvider
,IOptions<SenparcSetting> senparcSetting
, IOptions<SenparcWeixinSetting> senparcWeixinSetting)
{
app.UseStaticFiles();
_ManageStartup.Configure(app, env, loggerFactory, applicationLifetime);
_BaseInfoStartup.Configure(app, applicationLifetime, loggerFactory);
_CourseStartup.Configure(app, applicationLifetime,loggerFactory);
_OssStartup.Configure(app, applicationLifetime, loggerFactory);
_SellStartup.Configure(app, applicationLifetime, loggerFactory);
_PaymentCenterStartup.Configure(app, applicationLifetime, loggerFactory);
Home.Map.MapConfig.Config();
app.MapWhen(context =>
{
return context.Request.Path.Value.StartsWith("/admin");
}, appBuilder =>
{
var option = new RewriteOptions();
option.AddRewrite(".*", "/admin/index.html", true);
appBuilder.UseRewriter(option);
appBuilder.UseStaticFiles();
//appBuilder.Run(async c =>
//{
// var file = env.WebRootFileProvider.GetFileInfo("index.html");
// c.Response.ContentType = "text/html";
// using (var fileStream = new FileStream(file.PhysicalPath, FileMode.Open, FileAccess.Read))
// {
// await StreamCopyOperation.CopyToAsync(fileStream, c.Response.Body, null, BufferSize, c.RequestAborted);
// }
//});
});
app.UseWxApi();
//关于 UseSenparcGlobal() 的更多用法见 CO2NET Demohttps://github.com/Senparc/Senparc.CO2NET/blob/master/Sample/Senparc.CO2NET.Sample.netcore/Startup.cs
//IRegisterService register = RegisterService.Start(env, senparcSetting.Value)
// .UseSenparcGlobal();
//register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value)
// .RegisterMpAccount(senparcWeixinSetting.Value, "【盛派网络小助手】公众号");
AccessTokenContainer.RegisterAsync(Configuration["WxApps:AppID"], Configuration["WxApps:AppSecret"]);
}
}
}