gpt4 book ai didi

c# - 我如何在 ASP.NET 中使用 session 对象(使用 Visual Basic)

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:03 25 4
gpt4 key购买 nike

所以我希望用户登录并在他们登录时让他们的用户名出现在页面顶部。我首先检查他们是否存在于数据库中然后我让他们进入,所以当他们点击登录按钮它做这样的事情(按钮事件)

If (IsPostBack) Then

connection.Open()
command.Connection = connection

command.CommandText = "select count(*) from customer where Email='" & TextEmail.Text & "' AND Password='" & TextPassword.Text.Trim & "'"
counts = Convert.ToInt32(command.ExecuteScalar.ToString) ' execute this text as an SQL query

If (counts > 0) Then
Response.Redirect("Default.aspx", False)
Session("Username") = TextEmail.Text 'This is where i try to use the session storing the user's email (which i use as a username)
Else
Label1.Visible = True
End If

connection.Close()
End If

上面的代码工作正常,没有问题。在 C#.Net 中,这将是 Session["Username"]=TextEmail.Text right.

现在我的项目中有一个表单,您必须先登录才能访问该表单。当这个页面加载时,我想检查用户是否登录,如果没有,我将他们重定向到登录页面,如果他们是我让他们进入,并更新将显示“登录用户 userEmail”的标签, Page_load代码是这样的:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
If Not (Session("Username") = vbNull) Then
LogInStatus.Text = "logged in user " & System.Web.HttpContext.Current.Session("Username").ToString
Else
Response.Redirect("Login.aspx", False)
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub

将有一个注销,单击时我会将 session 设置为 Null,然后再次将它们重定向到登录页面。所以当他们点击注销时会发生这种情况

 Session("Username") = vbNull
Response.Redirect("Login.aspx", False)

当我运行代码时,我得到这个 NullReference 异常 image here显然,要么我错误地初始化了对象,要么我只是以错误的方式直接使用它。但所有这些都适用于 C#。请帮忙。

最佳答案

问题是:当“用户名”键不存在时,您从 session 中获得的值是对象Nothing,而不是vbNull。然后 Nothing ToString 引发异常。试试这个:

If Session("Username") IsNot Nothing Then
LogInStatus.Text = "logged in user " & Session("Username").ToString
Else
Response.Redirect("Login.aspx", False)
End If

您可以使用 Session.Remove("Username") 将值设置为 Nothing,而不是分配 vbNull。

关于c# - 我如何在 ASP.NET 中使用 session 对象(使用 Visual Basic),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39412140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com