我在visual studio 2013上使用asp.net和vb创建一个网站。我有一个登录会话 - 当用户登录并通过身份验证后,他们会被重定向到用户页面(user.aspx)。这是患者表(这是虚拟数据):
登录:
Imports System.Data.SqlClient
Imports System.Data
Partial Class Pages_Login
Inherits System.Web.UI.Page
Protected Sub btnlogin_Click(sender As Object, e As EventArgs) Handles btnlogin.Click
Dim username As String
Dim password As String
Dim bAuthethicated As Boolean
username = txtuser.Text
password = txtpassword.Text
bAuthethicated = CheckUser(username, password)
If bAuthethicated Then
Response.Redirect("user.aspx", True)
Else
lblresult.Text() = "Incorrect Student Number and/or Password"
End If
End Sub
会议:
Public Function CheckUser(username As String, password As String) As Integer
Dim cmdstring As String = "SELECT * FROM Patient Where Username=@USERNAME AND Password=@PASSWORD"
Dim found = 0
Using conn As New SqlConnection("Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Laura\Final_proj\App_Data\surgerydb.mdf;Integrated Security=True;Connect Timeout=30")
Dim cmd = New SqlCommand(cmdstring, conn)
cmd.Parameters.Add("@USERNAME", SqlDbType.NChar).Value = username
cmd.Parameters.Add("@PASSWORD", SqlDbType.NChar).Value = password
conn.Open()
Dim reader = cmd.ExecuteReader()
While reader.Read()
Session("PatientId") = CInt(reader.Item("PatientId"))
found = CInt(reader.Item("PatientId"))
End While
reader.Close()
End Using
Return (found)
End Function
登录后,用户被重定向到用户页面,标签显示PatientId:
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Label1.Text = Session("PatientId")
End Sub
我希望此标签显示表格中的用户名而不是患者ID - 当我输入I PatientId时它会起作用,但是当我将其更改为用户名但它不再显示任何内容时,会话必须更改为用户名或者我仍然可以在patientId下举行会话并显示他们的用户名? - 我会在标签前面贴一条欢迎声明,但我不希望患者登录并查看他们的身份证我希望他们看到他们的用户名。
答案 0 :(得分:1)
是的我相信你仍然可以在userID下保持会话但显示用户名。您没有将用户名添加到会话中。您必须以添加用户ID的方式添加它。
Session("username") = CInt(reader.Item("Username"));
然后显示你可以使用简单的:
Welcome <%Response.Write(Session("username"))%>
您可能需要稍微修改一下代码以满足您的需求,但类似的东西应该可以使它工作。
答案 1 :(得分:1)
也可以从数据库中检索用户名。 reader.Item()可用于引用查询返回的任何列:
While reader.Read()
Session("PatientId") = CInt(reader.Item("PatientId"))
Session("PatientUsername") = CStr(reader.Item("Username"))
found = CInt(reader.Item("PatientId"))
End While`
...
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Label1.Text = Session("PatientUsername")
End Sub`