设置会话和重新加载页面

时间:2014-09-03 15:11:27

标签: asp.net vb.net

首先,我知道存在很多关于会话状态的问题和帖子。

只是为了让你知道:我使用" MasterPager"在我的申请中。

当我设置Session(" field")时,一切正常。但是当我重新加载我的页面时(当我回到另一页时),每个例子,Session(" field")都没有。

我的example.aspx页面:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Not Page.IsPostBack Then
        ' It doesn't works, when I reload, Session is nothing
        If Not Session("field") Is Nothing Then
            example.Text = Session("field").ToString
        End If
    End If
End sub

Private Sub ClickButtonActionExample()
    Session("field") = "example text"
    ' It works
    example.Text = Session("field").ToString
End Sub

我的web.config:

<sessionState
  cookieless="UseCookies"
  cookieName=".authz"
  mode="StateServer"
  regenerateExpiredSessionId="true"
  stateConnectionString="tcpip=127.0.0.1:42424"
  timeout="20"
  useHostingIdentity="true" />

1 个答案:

答案 0 :(得分:1)

使用cookieless =“UseCookies”时,它需要客户端浏览器支持cookie。如果浏览器不支持cookie - 或禁用cookie,则会话状态将不起作用。

如果设置cookieless =“UseCookies”,将始终使用cookie - 即使浏览器或设备不支持它们,或者它们被禁用。

如果设备不支持cookie,会话信息将在后续请求中丢失,因为每个请求都将获得一个新ID。

我认为这是您的方案中发生的事情。