//内存缓存 services.AddMemoryCache(); services.AddDistributedMemoryCache(); services.AddSession(opts => { opts.IdleTimeout = TimeSpan.FromHours(8); //设置Session闲置超时时间(有效时间周期) opts.Cookie.Name = "supor_cookie"; opts.Cookie.HttpOnly = true; });
services.AddHttpContextAccessor();
//必须在usemvc之前,否则报错
app.UseSession();
var httpContextAccessor = app.ApplicationServices.GetRequiredService<IHttpContextAccessor>();
HttpContextExpand.Configure(httpContextAccessor);
public static class HttpContextExpand { private static IHttpContextAccessor _accessor; public static Microsoft.AspNetCore.Http.HttpContext Current => _accessor.HttpContext; internal static void Configure(IHttpContextAccessor accessor) { _accessor = accessor; } }
public static class StaticHttpContextExtensions { public static void AddHttpContextAccessor(this IServiceCollection services) { services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); } public static IApplicationBuilder UseStaticHttpContext(this IApplicationBuilder app) { var httpContextAccessor = app.ApplicationServices.GetRequiredService<IHttpContextAccessor>(); HttpContextExpand.Configure(httpContextAccessor); return app; } }
参考:
https://www.likecs.com/show-306826559.html
https://www.cnblogs.com/linezero/p/6801602.html