Hej,
Jag försöker skapa en klass som ska kolla om en användare finns i databasen och ska då bli inloggad (Forms authentication).
Nu är det så att användaren finns i databasen, men det står ändå att han inte gör det :q
Jag får inga felmeddealenden..
Login.vb:
Imports System.Web
Imports System.Text
Imports System.Data
Imports System.Data.OleDb
Imports System.Configuration
Imports CyberZone.Community.Security.SQLInjection
Imports CyberZone.Community.Data.ConnectionString
Namespace Security
Public Class Login
Public Shared Function CheckUser(ByVal Username As String, ByVal Password As String) As Boolean
Dim strUsername As String = SafeSQL(Username)
Dim strPassword As String = SafeSQL(Password)
Dim strUserTmp As String
Dim objConn As OleDbConnection = New OleDbConnection(GetConnectionString("Default"))
Dim objCmd As OleDbCommand = New OleDbCommand("SELECT TOP 1 [Username], [Rights] FROM [tblUsers] WHERE LCase(Username)='" & LCase(strUsername) & "' AND LCase(Password) = '" & LCase(strPassword) & "'", objConn)
objConn.Open()
Dim antal As Integer = objCmd.ExecuteScalar()
If antal > 0 Then
Dim objReader As OleDbDataReader = objCmd.ExecuteReader
strUsername = objReader.GetString(0)
HttpContext.Current.Session("sRights") = objReader.GetString(1)
objReader.Close()
Return True
Else
Return False
End If
objConn.Close()
End Function
End Class
End Namespace
Login.ascx.vb
Private Sub btSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSubmit.Click
If CheckUser(tbUsername.Text, tbPassword.Text) Then
Trace.Warn("CyberZone.Community.Security.Login.CheckUser", "Inloggad")
FormsAuthentication.RedirectFromLoginPage(tbUsername.Text, cbAutoLogin.Checked)
Else
Trace.Warn("CyberZone.Community.Security.Login.CheckUser", "Ej inloggad")
With ltMessage
.Visible = True
.Text = "Fel användarnamn / lösenord."
End With
End If
End Sub
Varför returnerar CheckUser false?