martinposer Geschrieben 9. Dezember 2011 Geschrieben 9. Dezember 2011 Hallo, folgendes Problem: Ich bin gerade dabei für meinen Ausbildungsbetrieb eine ASP.Net Anwendung zu erstellen. Für diese Anwendung soll auch ein Login stattfinden. Beim Ausführen erscheint allerdings der Fehler das kein Objektverweis auf eine Objektinstanz festgelegt wurde. Der Code sieht folgender Maßen aus: Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate 'Instanzen der Klassen Funktionen und Datenbank Dim funk As New Funktionen Dim Daten As New Datenbank Dim Benutzername As String Benutzername = Login1.UserName Dim Passwort As String Passwort = funk.MD5StringHash(Login1.Password) If Daten.Login(Passwort, Benutzername) = True Then End If End Sub Und die dazugehörigen Klassen mit den Methoden zur Verschlüsselung des Passworts und der Überprüfung ob das Passwort stimmt. Public Function Login(ByVal Passwort As String, ByVal Benutzername As String) As Boolean con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Martin\Documents\Visual Studio 2010\Projects\Taschenrechner\Taschenrechner\App_Data\Taschenrecher_DB.accdb" cmd.Connection = con cmd.CommandText = "select * from Login" Try con.Open() cmd.ExecuteReader() Do While reader.Read If reader("Benutzername") = Benutzername And reader("Passwort") = Passwort Then con.Close() Return True Else con.Close() Return False End If Loop Catch ex As Exception MsgBox(ex.Message) End Try Return False End Function Public Function MD5StringHash(ByVal strString As String) As String Dim MD5 As New MD5CryptoServiceProvider Dim Data As Byte() Dim Result As Byte() Dim Res As String = "" Dim Tmp As String = "" Data = Encoding.ASCII.GetBytes(strString) Result = MD5.ComputeHash(Data) For i As Integer = 0 To Result.Length - 1 Tmp = Hex(Result(i)) If Len(Tmp) = 1 Then Tmp = "0" & Tmp End If Res += Tmp Next Return Res End Function Schonmal vielen Dank für eure Hilfe. Zitieren
a3quit4s Geschrieben 9. Dezember 2011 Geschrieben 9. Dezember 2011 Es steht doch da was das Problem ist. Du benutzt einen Typ, ohne ihn vorher initialisiert zu haben. Sieh dir mal die DB-Klasse genauer an, dann wirst du den Fehler finden. Zitieren
martinposer Geschrieben 9. Dezember 2011 Autor Geschrieben 9. Dezember 2011 Also irgendwie steh ich auf dem Schlauch, mit welchem Wert initialisiere ich den Typ? Zitieren
a3quit4s Geschrieben 9. Dezember 2011 Geschrieben 9. Dezember 2011 Du initialisierst ihn garnicht, du verwendest ihn einfach. Das ist ja das Problem. Zitieren
martinposer Geschrieben 9. Dezember 2011 Autor Geschrieben 9. Dezember 2011 Wieso funktioniert dann aber das? Dim Daten As New Datenbank If Daten.Benutzer_Neu(txtVorname.Text, txtName.Text, txtBenutzer.Text, txtPasswort.Text) = True Then lblEintr.ForeColor = Drawing.Color.Green lblEintr.Text = "Die Dateneintragung war erfolgreich!" End If Zitieren
a3quit4s Geschrieben 9. Dezember 2011 Geschrieben 9. Dezember 2011 Gegenfrage: Wieso sollte es nicht? Sag mal, wo du denkst dass hier ein Typ verwendet wird, der nicht initialisiert wurde. Zitieren
HJST1979 Geschrieben 9. Dezember 2011 Geschrieben 9. Dezember 2011 Hallo wäre prinzipiell nicht schlecht uns zu schreiben WO der Fehler auftritt (welche Klasse). Ich gehe davon aus, dass es in der Klasse ist in der du die Funktion Login hast. Dort schreibst du con.ConnectionString Tipp: Hast du con vorher inintialisiert ? Gruß Hans-Jörg Zitieren
martinposer Geschrieben 9. Dezember 2011 Autor Geschrieben 9. Dezember 2011 Danke für eure Hilfe. Jetzt hab ich es gesehen, ich habe den Reader nicht initialisiert, so kann es natürlich nicht funktionieren :-D Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.