您的位置:首页 > 编程语言 > ASP

如何用ASP.NET里的State Management Database来储存Session Variable。

2005-04-14 10:32 501 查看
(華版)

很多人都会在地一时间里想到用Cookies(HttpCookies)来储存某些资料;以便在游览到另一个WebForm时,依然能够从用户端读取所储存的资料。但是,万一如果用户的游览器不容许Cookies。。。那就不是完了吗。。。更何况Cookies只能容纳4K Byte的资料而且!

        Dim DemoCookie As New HttpCookie("sampleCookie")

        Dim time As DateTime = DateTime.Now

        DemoCookie.Values.Add("Time", time.ToString())

        DemoCookie.Expires = time.AddDays(5)

        Response.Cookies.Add(DemoCookie)

        Response.Redirect("sample.aspx")

所以就要改用server side的SQL数据库方式而放弃client side的Cookies;更何况用SQL数据库是非常简单,只需安装.NET Framework所提供的InstallSqlState.sql script和修改一下Web.Config文件就行了。其它就如平常写Session变量一模一样。

InstallSqlState.sql可以在 C:\WINDOWS\Microsoft.NET\Framework\(版本号码)\ 文件夹里找到。

以下就是需要修改的Web.Config里的sessionState属性:

    <sessionState 

            mode="SQLServer"

            stateConnectionString="tcpip=127.0.0.1:42424"

            sqlConnectionString="data source=localhost; integrated security=true"

            cookieless="false" 

            timeout="20" 

    />

把原有的

  1. mode=InProc改去mode=SQLServer。

  2. 修改sqlConnectionString字符串,但是在这里不用填写Initial Catalog。因为AspState是默人Catalog,

      也就InstallSqlState.sql所安装的ASP State Management database。

  3. 把timeout修改去你想要的session expire值;timeout的单位以分钟来计算。

  4. cookieless="false"代表SesionID容纳在URL里,比如http://server/(SessionID)/Sample.aspx

      所以,此属性的值一般都是false。

        Dim time As DateTime = DateTime.Now

        Session("Time") = time.ToString())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐