So möchte ich den Benutzer anmelden und ihren Benutzernamen am oberen Rand der Seite angezeigt werden, wenn sie angemeldet sind. Ich überprüfe, ob sie vorhanden sind in der Datenbank zuerst, dann ließ ich sie in, so dass, wenn sie den Login-Button klicken tut es so etwas wie dieses (Button Ereignis)Wie verwende ich Sitzungsobjekte in ASP.NET (mit Visual Basic)
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
Above Code funktioniert gut, kein Problem hat. In C# .Net Dies wäre Session ["Benutzername"] = TextEmail.Text rechts.
So, jetzt gibt es ein Formular in meinem Projekt, auf das Sie ohne Anmeldung nicht zugreifen können. Wenn diese Seite geladen wird, möchte ich überprüfen, ob der Benutzer angemeldet ist oder nicht, wenn nicht, leite ich sie auf die Anmeldeseite um, wenn sie eingelesen werden, und aktualisiere das Etikett, das "eingeloggten Benutzer userEmail" anzeigt , der Page_Load-Code ist wie folgt aus:
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
Es wird ein Logout sein, die, wenn sie angeklickt ich die Session auf die Login-Seite, um sie dann wieder eingestellt wird auf null und einmal umleiten. so, wenn sie dies geschieht
Session("Username") = vbNull
Response.Redirect("Login.aspx", False)
Wenn ich den Code ausführen auf logout, bekomme ich diese Ausnahme Nullreference image here Offensichtlich entweder bin Initialisierung i das Objekt falsch, oder ich bin einfach es gerade die falsche Art und Weise verwendet wird. Aber all das funktioniert mit C#. Bitte helfen Sie.
versuchen zu konvertieren 'Convert.ToString (System.Web.HttpContext.Current.Session [" Benutzername "])' (Sorry ist in C# angegeben) behandelt es die Nullreferenz – Webruster
@Webbruster es ist bereits konvertiert. Wenn Sie zurückgehen, um den Code zu lesen, den ich gab, werden Sie sehen, dass, wo die Ausnahme auftritt, endet das Ende der Anweisung mit ..... 'Session (" Benutzername "). ToString' – Ndumiso
, wenn Sie .ToString verwenden () Dies führt zu einer NULL-Referenzausnahme, wenn das Objekt NULL ist, wo dies gehandhabt wird, wenn Sie mit 'Convert.Tostring' konvertieren, das ist, was ich in meinem vorherigen Kommentar verweise – Webruster