在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
sp.net-core中Session是以中间件的形式注册使用的。不比asp.net中的使用,直接使用Session就行。 首先在.net-core框架中注入Session中间件,首先在ConfigureServices中注入Session服务。但是,我们还需要注册内存服务。将Session存储到内存中,代码如下: public void ConfigureServices(IServiceCollection services) { services.AddMvc(); services.AddDistributedMemoryCache(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromSeconds(1 * 60); }); } 接下来就是使用了。我们在表示HTTP管道的Configure中使用Session: public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseSession(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } 我一开始并没有注意顺序,在这里的使用一定要注意顺序,如果顺序不当,会导致Session的使用出问题,但是并不会报错。 public class HomeController : Controller { string ss = "dasdas"; public IActionResult Index() { if (HttpContext.Session.GetString(ss) == null) { HttpContext.Session.SetString(ss, "Added into Redis"); ViewData["ewq"] = "Empty"; } else { string s = HttpContext.Session.GetString(ss); ViewData["ewq"] = s; } return View(); } public IActionResult About() { ViewData["Message"] = "Your application description page."; string s = HttpContext.Session.GetString(ss); ViewData["das"] = s; return View(); } } 一般来讲,到这里就可以了。但是我遇到了问题,困扰了我一上午。 代码demo地址: 链接:https://pan.baidu.com/s/1IqYiinVLzoz7vEl5tsnNEA 密码:gxe4 |
请发表评论