转换文件编码
This commit is contained in:
@@ -33,39 +33,39 @@ namespace ZR.Admin.WebApi
|
||||
{
|
||||
string corsUrls = Configuration["corsUrls"];
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD>
|
||||
//配置跨域
|
||||
services.AddCors(c =>
|
||||
{
|
||||
c.AddPolicy("Policy", policy =>
|
||||
{
|
||||
policy.WithOrigins(corsUrls.Split(',', StringSplitOptions.RemoveEmptyEntries))
|
||||
.AllowAnyHeader()//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
||||
.AllowCredentials()//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>cookie
|
||||
.AllowAnyMethod();//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ⷽ<EFBFBD><EFBFBD>
|
||||
.AllowAnyHeader()//允许任意头
|
||||
.AllowCredentials()//允许cookie
|
||||
.AllowAnyMethod();//允许任意方法
|
||||
});
|
||||
});
|
||||
//ע<EFBFBD><EFBFBD>SignalRʵʱͨѶ<EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>json<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//注入SignalR实时通讯,默认用json传输
|
||||
services.AddSignalR(options =>
|
||||
{
|
||||
//<EFBFBD>ͻ<EFBFBD><EFBFBD>˷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>30<EFBFBD>룬<EFBFBD>ij<EFBFBD>4<EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>connection.keepAliveIntervalInMilliseconds = 12e4;<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//客户端发保持连接请求到服务端最长间隔,默认30秒,改成4分钟,网页需跟着设置connection.keepAliveIntervalInMilliseconds = 12e4;即2分钟
|
||||
//options.ClientTimeoutInterval = TimeSpan.FromMinutes(4);
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͻ<EFBFBD><EFBFBD>˼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><EFBFBD>15<EFBFBD>룬<EFBFBD>ij<EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD><EFBFBD><EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>connection.serverTimeoutInMilliseconds = 24e4;<EFBFBD><EFBFBD>4<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//服务端发保持连接请求到客户端间隔,默认15秒,改成2分钟,网页需跟着设置connection.serverTimeoutInMilliseconds = 24e4;即4分钟
|
||||
//options.KeepAliveInterval = TimeSpan.FromMinutes(2);
|
||||
});
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Error unprotecting the session cookie<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//消除Error unprotecting the session cookie警告
|
||||
services.AddDataProtection()
|
||||
.PersistKeysToFileSystem(new DirectoryInfo(Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + "DataProtection"));
|
||||
//<EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD>
|
||||
//普通验证码
|
||||
services.AddHeiCaptcha();
|
||||
services.AddIPRate(Configuration);
|
||||
services.AddSession();
|
||||
services.AddMemoryCache();
|
||||
services.AddHttpContextAccessor();
|
||||
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Model<EFBFBD><EFBFBD>
|
||||
//绑定整个对象到Model上
|
||||
services.Configure<OptionsSetting>(Configuration);
|
||||
|
||||
//jwt <EFBFBD><EFBFBD>֤
|
||||
//jwt 认证
|
||||
services.AddAuthentication(options =>
|
||||
{
|
||||
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
|
||||
@@ -80,7 +80,7 @@ namespace ZR.Admin.WebApi
|
||||
|
||||
services.AddMvc(options =>
|
||||
{
|
||||
options.Filters.Add(typeof(GlobalActionMonitor));//ȫ<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
|
||||
options.Filters.Add(typeof(GlobalActionMonitor));//全局注册
|
||||
})
|
||||
.AddJsonOptions(options =>
|
||||
{
|
||||
@@ -99,7 +99,7 @@ namespace ZR.Admin.WebApi
|
||||
app.UseDeveloperExceptionPage();
|
||||
}
|
||||
app.UseSwagger();
|
||||
//ʹ<EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ζ<EFBFBD>ȥbody<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//使可以多次多去body内容
|
||||
app.Use((context, next) =>
|
||||
{
|
||||
context.Request.EnableBuffering();
|
||||
@@ -109,33 +109,33 @@ namespace ZR.Admin.WebApi
|
||||
}
|
||||
return next();
|
||||
});
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>̬<EFBFBD>ļ<EFBFBD>/wwwrootĿ¼<C4BF>ļ<EFBFBD><C4BC><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>UseRoutingǰ<EFBFBD><EFBFBD>
|
||||
//开启访问静态文件/wwwroot目录文件,要放在UseRouting前面
|
||||
app.UseStaticFiles();
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD>ɷ<EFBFBD><EFBFBD><EFBFBD>
|
||||
//开启路由访问
|
||||
app.UseRouting();
|
||||
app.UseCors("Policy");//Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>app.UseEndpointsǰ<EFBFBD><EFBFBD>
|
||||
app.UseCors("Policy");//要放在app.UseEndpoints前。
|
||||
|
||||
//app.UseAuthentication<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Authentication<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ǰHttp<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>Cookie<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>HttpContext.User<65><72><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>app.UseAuthentication<EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܹ<EFBFBD><EFBFBD><EFBFBD>HttpContext.User<EFBFBD>ж<EFBFBD>ȡ<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
|
||||
//<EFBFBD><EFBFBD>Ҳ<EFBFBD><EFBFBD>Ϊʲô<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD>app.UseAuthentication<EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>app.UseMvc<76><63><EFBFBD><EFBFBD>ǰ<EFBFBD>棬<EFBFBD><E6A3AC>Ϊֻ<CEAA><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ASP.NET Core<EFBFBD><EFBFBD>MVC<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><EFBFBD>ܶ<EFBFBD>ȡ<EFBFBD><EFBFBD>HttpContext.User<EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
|
||||
//1.<EFBFBD>ȿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤
|
||||
//app.UseAuthentication会启用Authentication中间件,该中间件会根据当前Http请求中的Cookie信息来设置HttpContext.User属性(后面会用到),
|
||||
//所以只有在app.UseAuthentication方法之后注册的中间件才能够从HttpContext.User中读取到值,
|
||||
//这也是为什么上面强调app.UseAuthentication方法一定要放在下面的app.UseMvc方法前面,因为只有这样ASP.NET Core的MVC中间件中才能读取到HttpContext.User的值。
|
||||
//1.先开启认证
|
||||
app.UseAuthentication();
|
||||
//2.<EFBFBD>ٿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ
|
||||
//2.再开启授权
|
||||
app.UseAuthorization();
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>session
|
||||
//开启session
|
||||
//app.UseSession();
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//开启缓存
|
||||
app.UseResponseCaching();
|
||||
//<EFBFBD>ָ<EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//恢复/启动任务
|
||||
app.UseAddTaskSchedulers();
|
||||
//ʹ<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>쳣<EFBFBD>м<EFBFBD><EFBFBD><EFBFBD>
|
||||
//使用全局异常中间件
|
||||
app.UseMiddleware<GlobalExceptionMiddleware>();
|
||||
//<EFBFBD><EFBFBD><EFBFBD>ÿͻ<EFBFBD><EFBFBD><EFBFBD>IP<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//启用客户端IP限制速率
|
||||
app.UseIpRateLimiting();
|
||||
|
||||
app.UseEndpoints(endpoints =>
|
||||
{
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD>socket<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//设置socket连接
|
||||
endpoints.MapHub<MessageHub>("/msgHub");
|
||||
|
||||
endpoints.MapControllerRoute(
|
||||
@@ -145,7 +145,7 @@ namespace ZR.Admin.WebApi
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ע<EFBFBD><EFBFBD>Services<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
/// 注册Services服务
|
||||
/// </summary>
|
||||
/// <param name="services"></param>
|
||||
/// <param name="configuration"></param>
|
||||
@@ -153,12 +153,12 @@ namespace ZR.Admin.WebApi
|
||||
{
|
||||
services.AddAppService();
|
||||
services.AddSingleton(new AppSettings(configuration));
|
||||
//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//开启计划任务
|
||||
services.AddTaskSchedulers();
|
||||
//<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>db
|
||||
//初始化db
|
||||
DbExtension.AddDb(configuration);
|
||||
|
||||
//ע<EFBFBD><EFBFBD>REDIS <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
//注册REDIS 服务
|
||||
Task.Run(() =>
|
||||
{
|
||||
//RedisServer.Initalize();
|
||||
|
||||
Reference in New Issue
Block a user