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.
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.
martinposer Geschrieben 9. Dezember 2011 Autor Geschrieben 9. Dezember 2011 Also irgendwie steh ich auf dem Schlauch, mit welchem Wert initialisiere ich den Typ?
a3quit4s Geschrieben 9. Dezember 2011 Geschrieben 9. Dezember 2011 Du initialisierst ihn garnicht, du verwendest ihn einfach. Das ist ja das Problem.
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
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.
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden