1.首先我們要創建一個靜態類
public static class MyHttpContext { public static IServiceProvider ServiceProvider; public static Microsoft.AspNetCore.Http.HttpContext Current { get { object factory = ServiceProvider.GetService(typeof(Microsoft.AspNetCore.Http.IHttpContextAccessor)); Microsoft.AspNetCore.Http.HttpContext context = ((Microsoft.AspNetCore.Http.HttpContextAccessor)factory).HttpContext; return context; } } }
2: 然后在startup.cs文件中
在Configure方法 添加
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
3. 改寫ConfigureServices方法
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider svp) { ///省n多代碼
Models.MyHttpContext.ServiceProvider = svp
} 在Configure方法的參數中加IServiceProvider svp;並在方法體中加 Models.MyHttpContext.ServiceProvider = svp; 其中MyHttpContext和聲明的靜態類名是一樣的;
在程序中使用存儲session就可以用
Models.MyHttpContext.Current.Session.Set("key", "value");
當然也可以把類名MyHttpContext改成HttpContext這樣在程序中就是Models.HttpContext.Current.Session.Set("key", “value”)和之前的asp.net使用時一樣的;