zoukankan      html  css  js  c++  java
  • 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[] ,后两者见名知意,对应的获取数据的方法也有三种

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

  • 相关阅读:
    集合改变时会自动通知的集合类
    WPF中的MatrixTransform
    WPF中,如何将Vista Aero效果扩展到整个窗口
    WPF中的命令与命令绑定(二)
    参加BEA Dev2Dev TechDays 归来
    在WPF中自定义你的绘制(五)
    Microsoft Surface
    WPF与缓动(二) 正弦与余弦缓动
    WPF与缓动(一) N次缓动
    终于找到了一个WPF中的日历控件
  • 原文地址:https://www.cnblogs.com/charlesmvp/p/13360572.html
Copyright © 2011-2022 走看看