Not Knowing How to Display Username After Login

試著忘記壹切 提交于 2019-12-25 07:27:19

问题


I’m still stumbling with this page over and over again. Just couldn’t get the user’s Username (using email as the username) to display on mysupport.aspx page after she’s successfully logged in. The result should look like this with the email showing but it is not retrieving anything:

Email:  barb@hotmail.com

Being an amateur, I know I’m missing a big piece of the puzzle but I don’t know what. Am I using the mailLBL.Text = User.Identity.Name.ToString() wrongly? Below are the code-behind:

Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Data.SqlClient

Partial Class mysupport
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    Dim sConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("TrackTicketsConnectionString2").ConnectionString)
    sConnection.Open()

    Dim cmdS As String = "Select Email from Users Where Deleted='N'"
    Dim cmdCheckmail As New SqlCommand(cmdS, sConnection)

    If Session("Ticket") IsNot Nothing Then
        mailLBL.Text = User.Identity.Name.ToString()
    Else
        Response.Redirect("SignIn.aspx")
    End If

End Sub
Protected Sub signinBTN_Click(ByVal sender As Object, ByVal e As EventArgs)
    Session("Ticket") = Nothing
    Response.Redirect("SignIn.aspx")
End Sub
End Class

Any help and guidance is truly appreciated!


回答1:


What you could do first is study these links:

  • How to: Implement Simple Forms Authentication
  • How to use Sessions

There are several things wrong with this code.

Old Code:

Dim cmdS As String = "Select Email from Users Where Deleted='N'"
Dim cmdCheckmail As New SqlCommand(cmdS, sConnection)

If Session("Ticket") IsNot Nothing Then
    mailLBL.Text = User.Identity.Name.ToString()
Else
    Response.Redirect("SignIn.aspx")
End If

Corrected Code:

  If Session("Ticket") Is Nothing Then
    Response.Redirect("SignIn.aspx")
  Else
    Dim cmdS As String = "Select Email from Users Where Deleted='N' AND Username=@Username"
    Dim cmdCheckEmail as new SqlCommand(cmdS, sConnection)
    cmd.AddParameters(new SqlParameter("@UserName", SqlDbType.VarChar).Value = Session("Ticket")
    Dim obj as Object = cmd.ExecuteScalar()
    If obj isNot Nothing
      mailLBL.Text = Convert.ToString(obj)
    End If
  End

I hope that helps.



来源:https://stackoverflow.com/questions/16904170/not-knowing-how-to-display-username-after-login

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!