ログインしているときにユーザーがログインしてそのページの上部にユーザー名を表示したい場合は、データベースに最初に私がASP.NETでセッションオブジェクトを使用する方法(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
コードの上に、彼らはログインボタンをクリックしたときにそれがこの(ボタンイベント)のような何かをし、それらを聞かせて正常に動作し、問題はありません。これはSession ["Username"] = TextEmail.Textのようになります。
これで、最初にログインしなくてもアクセスできないフォームがプロジェクト内にあります。このページが読み込まれたら、ユーザーがログインしているかどうかを確認したい場合は、ログインページにリダイレクトします。ユーザーを受け入れ、「user 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
クリックしたときに私はNullにセッションを設定してから、再びログインページにリダイレクトされますログアウト、があります。そう、彼らはログアウト]をクリックしたときにこれは私がコードを実行すると
Session("Username") = vbNull
Response.Redirect("Login.aspx", False)
が、私はどちらか私は、オブジェクトが間違って初期化しています、または私はちょうどそれをまっすぐに間違った方法を使用しています明らかに、このNullReference例外 image here を取得起こります。しかし、これはすべてC#で動作します。助けてください。
Convert.ToString(System.Web.HttpContext.Current.Session ["Username"]) '(これはC#で与えられています)を変換しようとしました。ヌル参照を処理しています – Webruster
@Webruster既に変換されています。私が与えたコードを読み返すと、例外が発生した場所で、ステートメントの最後が..... Session( "Username")で終わることがわかります。ToString' – Ndumiso
.ToStringを使用している場合)これは、オブジェクトがnullの場合にnull参照例外につながります。これは、 'Convert.Tostring'を使用して変換するとこれが処理されるため、前のコメントで参照しています。 – Webruster