我有一个登录页面,它将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 谢谢你的帮助
答案 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
使用此信息,您可以查询数据库。