Session如何在ASP.NETCore项目中使用-创新互联

本篇文章为大家展示了Session如何在ASP.NET Core项目中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联公司成立于2013年,先为泰安等服务建站,泰安等地企业,进行企业商务咨询服务。为泰安企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

安装 Session 中间件


要想使用 session 中间件,你可以使用 Visual Studio 2019 中的 NuGet package manager 可视化界面进行安装,或者通过 NuGet package manager console 命令行输入如下命令:

Install-Package Microsoft.AspNetCore.Session

配置 session 中间件

现在 Microsoft.AspNetCore.Session 已经成功安装到你的项目中了,接下来可以将它添加到 ASP.Net Core pipeline 中,请注意:为了能够启动 Session,你必须要使用一个 实现了 IDistributedCache 接口的 cache store 来作为 session 的底层存储,然后你还要在 ConfigureServices 方法下调用 AddSession 方法将其塞入 IOC 容器,最后在 Startup.Configure 方法下使用 UseSession 将其塞入到 request -> response 请求管道中,具体代码如下:

  public void ConfigureServices(IServiceCollection services)
  {
    services.AddDistributedMemoryCache();
    services.AddSession(options =>
    {
      options.IdleTimeout = TimeSpan.FromSeconds(5);
      options.Cookie.HttpOnly = true;
      options.Cookie.IsEssential = true;
    });
    services.AddMvc()
      .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
  }

一旦 session 中间件加入到了 IOC 容器之后,接下来可以在 Configure 方法中调用 UseSession 来启动 session。

  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
  {
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseSession();
    app.UseHttpContextItemsMiddleware();
    app.UseMvc();
  }

存储和获取 session

你可以使用 Set, SetInt32 和 SetString 这三个方法来实现 Session 的存储,这些方法有两个参数,一个是键,一个是键对应的数据,而且 Set 方法的 value 对应的是 byte[] 形式。

类似的,你可以使用 Get,GetInt32 和 GetString 方法来实现 session 的读取,同时 Get 方法接收一个 string 格式的 key,并且返回 byte[] 数组,要使用这些扩展方法,你需要将 Microsoft.AspNetCore.Http 引用到项目中。

下面的代码展示了如何将数据添加到 session 中。

public IActionResult Index()
{
  HttpContext.Session.SetString("Message", "Hello World!");
  HttpContext.Session.SetInt32("Year", 2019);
  return View();
}

接下来再看看如何从 session 中获取数据,如下代码所示:

public IActionResult About()
{
  ViewBag.Message = HttpContext.Session.GetString("Message");
  ViewBag.Year = HttpContext.Session.GetInt32("Year");
  return View();
}

如果你想设置或者获取属于其他类型的数据,可以在 ISession 接口上新增一个扩展方法并且自己来实现序列化逻辑,从 session 中设置或者获取 复杂类型时,可以把这个类型序列化为 json,或者 json 反序列化为 model。

还有一点要特别注意,默认的 session 是基于内存的,也就是说进程关闭了 session 就会丢失,如果你想实现session持久化,可以采用 sqlserver 或者 redis。

上述内容就是Session如何在ASP.NET Core项目中使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

分享名称:Session如何在ASP.NETCore项目中使用-创新互联
分享URL:/article18/cdjpdp.html

成都网站建设公司_创新互联,为您提供企业网站制作建站公司品牌网站设计虚拟主机动态网站软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化