ASP.NET CORE中使用SESSION

从 https://www.cnblogs.com/liuxiaoji/p/6860104.html 炒的,这里记到自己博客,以做记录,以后炒也要炒自己博客上的代码,ASP.NET CORE中使用SESSION的步骤如下 :

1. NUGET包引用 Microsoft.AspNetCore.Session (注:我在mac下用vs for mac做的时候,NUGET根本搜索不了,都需要FQ的,自己搜索了下,加入博客园的NUGET源就可以了,而且也很快:https://nuget.cnblogs.com/v3/index.json)
2. Startup.cs中的相应方法加入些代码:

        public void ConfigureServices(IServiceCollection services)
        {
            //添加session
            services.AddDistributedMemoryCache();
            services.AddSession();

            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder appIHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseSession(); //加上这句才能用session

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name"default",
                    template"{controller=Home}/{action=Index}/{id?}");
            });
        }


3. 以下是控制器中使用SESSION的代码,记得要先引用那个命名空间:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using candel.Models;
using Microsoft.AspNetCore.Http; //记得要引用 这个

namespace candel.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            ViewBag.msg = "你好,牛腩,哈哈哈!!!";
            HttpContext.Session.SetString("username""niunan"); //设置SESSION
            return View();
        }

        public IActionResult About(){
            string username = HttpContext.Session.GetString("username"); //获取SESSION
            ViewBag.username = username;
            return View();
        }

 
    }
}