[Asp.Net Core]Session的使用

Posted 厦门德仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Asp.Net Core]Session的使用相关的知识,希望对你有一定的参考价值。

前言

web程序中,Session是一个无法避开的点。
最近新开项目,打算从开始搭建一个基础的架子,后台用户登录成功后,需要保存session。新建的asp.net core的模板已经包含了Session的库,

二、使用步骤

1.Controller

代码如下(示例):

        public IActionResult Index()
        
            _logger.LogInformation("this is HomeController.Index");

            base.ViewBag.User1 = "张三";
            base.ViewData["User2"] = "李四";
            base.TempData["User3"] = "王五";
            object user4 = "赵六";

            if (HttpContext.Session.GetString("User5") == null)
            
                HttpContext.Session.SetString("User5", "田七");
            
            return View(user4);

        

2.View显示

代码如下(示例):

@
    ViewData["Title"] = "Home Page";

@model System.String;
@using Microsoft.AspNetCore.Http;
<div class="text-center">
    <h1 class="display-4">Welcome</h1>
    <p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
<h1>
    @base.ViewBag.User1
</h1>
<h1>
    @base.ViewData["User2"]
</h1>
<h1>
    @base.TempData["User3"]
</h1>
<h1>
    @Model
</h1>
<h1>
    @Context.Session.GetString("User5");
</h1>

报错:

3.解决异常:未注册中间件

总结

  1. 注册中间件服务:services.AddSession();
  2. 使用:app.UseSession();
  3. 存入Session:HttpContext.Session.SetString(“userid”, “”);
  4. 读取Session:HttpContext.Session.GetString(“userid”)

以上是关于[Asp.Net Core]Session的使用的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core中使用Session

ASP.NET Core 使用Redis 存储Session 实现共享 Session

ASP.NET Core 中简单Session登录校验

Application Insights - ASP.NET Core - Session_Id 为空

asp.net core 使用 Redis 和 Protobuf

ASP.NET Core 2.1 API JWT 令牌 Session.id 在每次请求时都会更改