• Asp.NetCore Web开发之会话技术


    这节讲一下会话技术,首先了解一下什么是会话,会话是指浏览器打开到关闭的过程中,多次与服务器发送接收数据的过程。

        由于HTTP是无状态协议,一次请求响应过后,产生的数据就随之释放了,可是在某些情况下,我们希望服务器保存我们的一些数据,方便下次请求(比如网站的账户登录信息,等等)。如果要保存这些发送中的数据,就要用到会话技术(Cookie技术本节不涉及),服务器会将每个浏览器的单独标识,将每个浏览器需要保存的数据,保存下来,当下次需要这些保存的数据,就可以取出来用。

        正式点说,会话技术(Session)服务器端保存浏览器请求数据的一项技术,数据是以键值对的形式保存到服务器内存中,可以解决无状态协议带来的弊端,减少每次请求的数据量,提高了性能。

        

        接下来,了解一下,如何在ASP.NetCore中配置使用会话技术

        首先需要先配置一下,在startup文件中配置一下Session服务,然后添加Session中间件,需添加在路由中间件之前

    //启用内存缓存(该步骤需在AddSession()调用前使用)
    services.AddDistributedMemoryCache();//启用session之前必须先添加内存
    services.AddSession(options =>
    {
    options.Cookie.Name = ".AdventureWorks.Session";
    options.IdleTimeout = TimeSpan.FromSeconds(2000);//设置session的过期时间
    options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
    });

    app.UseHttpsRedirection();
      app.UseStaticFiles();
      app.UseSession();//添加会话中间件
      app.UseRouting();//路由中间件
      app.UseAuthorization();

        配置好了以后,通过Http上下文对象就可以使用了。要引用如下命名空间,需要其中的Session对象的支持。

    using Microsoft.AspNetCore.Http;

        写入数据的方法有三种:

     

        Set是写入byte[] ,后两者见名知意,对应的获取数据的方法也有三种

    这是我的个人公众号,最新的文章都在此公众号发布

  • 相关阅读:
    [node.js学习]为node.js写的一个操作mysql的类
    极光IM简单接入步骤
    windows自带的netsh 端口转发
    nodejs 做的带管理后台的东东,主要学习到 ....我忘了学到什么了
    利用来JS控制页面控件显示和隐藏有两种方法
    phpstudy 出现You don't have permission to access / on this server.
    禁用input自动填充
    一般充值的流程
    jq传输json字符串
    ECSHOP更改后台顶部图片
  • 原文地址:https://www.cnblogs.com/charlesmvp/p/13360572.html
Copyright © 2020-2023  润新知