zoukankan      html  css  js  c++  java
  • Asp.Net保存session的三种方法

    C#中保存Session的三种方法及Web.Config设置

    1、保存session到sql server,需要指定Sql Server服务器,这种方法因为要读写数据库最慢

    <sessionState
    mode="SQLServer"
    sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
    cookieless="false"
    timeout="20" />

    2、 保存session到windows进程,要使用这种方法,需要打开aspnet_state.exe服务,通过此方法,我们可以将session保存到其它服务器,这样可以实现多台服务器的session共享

    <sessionState
    mode="StateServer"
    stateConnectionString="tcpip=127.0.0.1:42626"
    cookieless="false"
    timeout="20" />

    3、默认情况,.net将session保存到当前进程中,这种方式最快,但是不能多台服务器共享session

    <sessionState
    mode=”InProc”
    cookieless=”false”
    timeout=”20”
    />

    课外阅读

    ASP.NET中客户端Session状态的存储

    在我们上面的Session模型简介中,大家可以发现Session状态应该存储在两个地方,分别是客户端和服务器端。客户端只负责保存相应网站的SessionID,而其他的Session信息则保存在服务器端。在ASP中,客户端的SessionID实际是以Cookie的形式存储的。如果用户在浏览器的设置中选择了禁用Cookie,那末他也就无法享受Session的便利之处了,甚至造成不能访问某些网站。为了解决以上问题,在ASP.NET中客户端的Session信息存储方式分为:Cookie和Cookieless两种。

    ASP.NET中,默认状态下,在客户端还是使用Cookie存储Session信息的。如果我们想在客户端使用Cookieless的方式存储Session信息的方法如下:

    找到当前Web应用程序的根目录,打开Web.Config文件,找到如下段落:

    <sessionState
      mode="InProc"
      stateConnectionString="tcpip=127.0.0.1:42424"
      sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
      cookieless="false"
      timeout="20" 
    />

    这段话中的cookieless="false"改为:cookieless="true",这样,客户端的Session信息就不再使用Cookie存储了,而是将其通过URL存储。关闭当前的IE,打开一个新IE,重新访问刚才的Web应用程序,就会看到类似下面的样子:其中,http://localhost/MyTestApplication/(ulqsek45heu3ic2a5zgdl245)/default.aspx中黑体标出的就是客户端的Session ID。注意,这段信息是由IIS自动加上的,不会影响以前正常的连接。

  • 相关阅读:
    QT设置窗口屏幕居中
    屏蔽ubuntu桌面鼠标右键以及Ctrl Alt F*
    ubuntu12.04 U盘自动挂载配置
    最受欢迎的15个Python开源框架
    异步非阻塞IO的Python Web框架--Tornado
    RabbitMQ RPC问题
    petapoco模板修改
    事件&表达式
    .net core2 单元测试
    检查邮箱IP是否在国际反垃圾邮件组织的黑名单中
  • 原文地址:https://www.cnblogs.com/webapi/p/5726763.html
Copyright © 2011-2022 走看看