zoukankan      html  css  js  c++  java
  • ASP.NET Core中使用Session

    ASP.NET Core中使用Session

    1、在程序包管理控制台中执行命令安装依赖包:

    PM> Install-Package Microsoft.AspNetCore.Session -Version 2.2.0

    也可直接在项目工程文件(*.csproj)中添加如下代码达到添加Session依赖的目的

    1 <ItemGroup>
    2     <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" />
    3 </ItemGroup>

    2、使用依赖关系注入从应用中引用的服务

    在Startup类的ConfigureServices()方法中调用AddSession()服务:

    1 public void ConfigureServices(IServiceCollection services)
    2 {
    3     services.AddSession();
    4 }

    3、使用中间件

    在Startup类的Configure()方法中添加UseSession()中间件:

    1 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    2 {
    3      app.UseSession();
    4 }

    4、修改配置,防止页面切换后Session失效

    防止页面切换后Session ID改变,Seesion失效

    1 public void ConfigureServices(IServiceCollection services)
    2 {
    3   services.Configure<CookiePolicyOptions>(options =>
    4      {
    5          // This lambda determines whether user consent for non-essential cookies is needed for a given request.
    6          options.CheckConsentNeeded = context => false;//默认为true,改为false
    7          options.MinimumSameSitePolicy = SameSiteMode.None;
    8       });
    9 }

    5、使用Session

    Session写入

    1 HttpContext.Session.SetString("key", "value");

    Session读取

    1 HttpContext.Session.GetString("key");

     扩展方法

     1 /// <summary>
     2 /// Session写入
     3 /// </summary>
     4 /// <param name="key"></param>
     5 /// <param name="value"></param>
     6 protected void SetSession(string key, string value)
     7 {
     8     HttpContext.Session.SetString(key, value);
     9 }
    10 
    11 /// <summary>
    12 /// Session读取
    13 /// </summary>
    14 /// <param name="key"></param>
    15 /// <returns>返回对应的值</returns>
    16 protected string GetSession(string key)
    17 {
    18     var value = HttpContext.Session.GetString(key);
    19     if (string.IsNullOrEmpty(value))
    20     value = string.Empty;
    21     return value;
    22 }

     关于.net core中session的使用分享到此结束,如有不足之处,欢迎大家留言评论!

  • 相关阅读:
    .net 运行中出现的错误解决方法记录
    SVC 工作过程中出现的错误记录(SEO项目)
    TreeCollection2
    晴天前100页评论标签云分析显示
    python numpy数组中的复制问题
    Task多线程进行多进程
    python list(列表)和tuple(元组)
    并发无锁队列学习(概念介绍)
    关联型容器
    【原创】k8s源代码分析-----EndpointController
  • 原文地址:https://www.cnblogs.com/gygg/p/11290082.html
Copyright © 2011-2022 走看看