Использование сессионной переменной на моем сайте VB.net было хорошо понято. Мне просто нужно получить приветственное сообщение, чтобы оставаться на каждой странице. Я разместил код и текстовое поле на главной странице, чтобы сообщение оставалось там, но моя метка с именем пользователя исчезает, когда я нажимаю на другую страницу.
Сессия все еще там, потому что я настроил ее на отображение текстового поля для ввода вашего кода, если сессия разрушена или по какой-либо причине недоступна.
Может кто-нибудь сказать мне, какая часть моего кода не позволяет отображать First_Name и Last_Name сеанса пользователя? Проблема в Page_Load, но я решил добавить весь файл master.vb, чтобы показать все, что у меня есть.
Partial Class MasterPage
Inherits System.Web.UI.MasterPage
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim FirstName As String = String.Empty
Dim LastName As String = String.Empty
If Session("IB") Is Nothing Then
IBText.Visible = "True"
IBTextBox.Visible = "True"
IBTextBoxButton.Visible = "True"
Else
Session("First_Name") = FirstName
Session("Last_Name") = LastName
IBText.Visible = "False"
IBTextBox.Visible = "False"
IBTextBoxButton.Visible = "False"
lblIB.Visible = "True"
lblIB.Text = "Welcome, " + Session("First_Name") + " "
+ Session("Last_Name") + "."
End If
End Sub
Protected Sub IBTextBoxButton_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles IBTextBoxButton.Click
Session("IB") = IBTextBox.Text
Dim IB As String = Session("IB")
'Response.Redirect(Request.RawUrl + "&IB=" + Session("IB"))
End Sub
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As
System.Web.UI.WebControls.ServerValidateEventArgs) Handles
CustomValidator1.ServerValidate
Dim FirstName As String = String.Empty
Dim LastName As String = String.Empty
If GetAccountName(args.Value, FirstName, LastName) Then
Session("First_Name") = FirstName
Session("Last_Name") = LastName
IBText.Visible = "False"
IBTextBox.Visible = "False"
IBTextBoxButton.Visible = "False"
lblIB.Visible = "True"
lblIB.Text = "Welcome, " + Session("First_Name") + " " + Session("Last_Name")
+ "."
args.IsValid = True
Else
args.IsValid = False
End If
End Sub
Private Function GetAccountName(ByVal baccount As String, ByRef FirstName As String,
ByRef LastName As String) As Boolean
Dim sql As String = "select baccount, First_Name, Last_Name" & _
" from IB inner join IB_BUISNESS_INFORMATION ON
(IB.IB_ID = IB_BUISNESS_INFORMATION.IB_ID)" & _
" where baccount = @baccount"
Using conn As New
SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings
("IBConnectionString").ConnectionString)
Using cmd As New SqlCommand(sql, conn)
cmd.Parameters.AddWithValue("@baccount", baccount)
conn.Open()
Using rdr As SqlDataReader = cmd.ExecuteReader
If (rdr.Read) Then
FirstName = rdr("First_Name").ToString()
LastName = rdr("Last_Name").ToString()
Return True
Else
Return False
End If
End Using
End Using
End Using
End Function
End Class