在会话中保存一个aspx页面

时间:2011-12-30 15:58:15

标签: asp.net vb.net

我有一个登录页面,它将userName返回到名为User.aspx的页面。 User.aspx显示基于sql select的用户信息。我在页面上填写12个标签,其中包含select的结果。如果用户退出并在页面中再次输入,我想保留12个标签的信息。

我保存会话

       Session("UserPage") = (litHello.Text And litAddresse.Text And litAnimalGenre.Text And litCouriel.Text And litNomAnimal.Text And litPays.Text And litPostalCode.Text And litProvince.Text And litRace.Text And litTel.Text And litVille.Text)

现在我怎样才能继续用我保存的会话调用UserPage填充我的所有标签???就是那个问题 !!!代码是VB.NET 谢谢你的帮助

3 个答案:

答案 0 :(得分:3)

回答您的问题:

我会创建一个具有多个属性的类并将其保存在会话中;)

例如

Public class PropertySession
   Public Property ID as integer
   Public Property Name as String
   Public Property Address as String
End Class

然后(很长的路)

Dim currentPropertySession as PropertySession
With PropertySession
   .ID = litID.Text
   .Name = litName.Text
   .Address = litAddress.Text
End With

最后存储

Session("Property") = currentPropertySession

或更短的方式(仍然需要声明PropertySession)

Session("Property") = New PropertySession With { .ID = litID.Text, .Name = litName.Text, .Address = litAddress.Text}

你甚至可以这样做 - 只是为了完成,但如果我是你,我就不会这样做 -

  Session("Property") = New Object With { .ID = litID.Text, .Name = litName.Text, .Address = litAddress.Text}

其他 There are 8 ways to store data of a user to the next page.

查看哪一个对您来说足够好。

答案 1 :(得分:1)

您可以继续按照它的方式执行此操作,然后在读出会话时将值拆分为数组,然后循环遍历数组。您需要使用分隔符来分隔值,以便分割它们。

Session("UserPage") = (litHello.Text & "|" & litAddresse.Text & "|" & litAnimalGenre.Text & "|" & litCouriel.Text & "|" & litNomAnimal.Text & "|" & litPays.Text & "|" & litPostalCode.Text & "|" & litProvince.Text & "|" & litRace.Text & "|" & litTel.Text & "|" & litVille.Text)

当你读出值时:

dim userInfo as string() = Session("UserPage").toString().split("|")

现在相应地设置标签

label1.text = userInfo(0)
label2.text = userInfo(1)
etc...

这里的一个问题是您必须确保会话中的所有值都有值,如果不是,则用空字符串""填充它,这样您的分割将填充正确的数字值。

答案 2 :(得分:1)

对于身份验证,您可以使用ASP.Net的开箱即用功能。它提供了与SQL Membership Provider等标准提供商的API。

通过使用web.config设置,您可以允许用户仅访问您网站的某些部分(例如成员区域)。然后,如果您想查询比成员资格提供程序API允许的更多信息,您可以从以下任何地方获取经过身份验证的用户身份(您自然密钥):

Page.User.Identity.Name

使用此信息,您可以查询数据库。