Veritas84 Skrevet 22. november 2004 Del Skrevet 22. november 2004 Jeg prøve få til en innloggingsfunksjon i vb.net hvor brukernavn og passord hentes fra en oracle-database. jeg har koblet meg til databasen og jeg får lest og skrevet til den. i innloggingsbildet har jeg to tekstfelter, txtUser og txtPass. men jeg sliter med koden som skal være bak Logg inn-knappen. Håper noen kan hjelpe meg. Lenke til kommentar
alftore Skrevet 22. november 2004 Del Skrevet 22. november 2004 Regner med det er ASP.NET du jobber med. Ta en titt på formsauthentication http://samples.gotdotnet.com/quickstart/as.../formsauth.aspx Lenke til kommentar
Veritas84 Skrevet 22. november 2004 Forfatter Del Skrevet 22. november 2004 Visual Basic .Net Lenke til kommentar
Kirikiri Skrevet 23. november 2004 Del Skrevet 23. november 2004 Litt pseudokode: dim dbUsername, dbPassword as string dim txtUsername, txtPassword as string on Loginknapp.Click txtUsername = txtUser.Text 'gjør clean av txtUsername, der du tar vekk ting som ' og ", som kan brukes til SQL Insert etc. Du skriver de ikke til db akkurat her, men det er en grei ting å gjøre i alle tilfelle. txtPassword = txtPassword.text ' gjør clean av denne også if len(txtUser.Text) > 0 AND len(txtPassword.Text) > 0 then if txtUser.Text = dbUsername AND txtPassword.Text = dbPassword then ' dette stemmer, og du kan gå videre else 'gi feilmelding, gjerne uten å pinpointe akkurat hvilken av de som er feil. end if else if len(txtUser.Text) = 0 then 'gi beskjed om at de må skrive inn brukernavn elseif len(txtPassword.text) = 0 then ' gi beskjed om at de må skrive inn passord end if 'generelt, ikke gå videre, gi tilbakemelding på hva som er galt end if Grei start, i hvertfall. Kirikiri Lenke til kommentar
GeirGrusom Skrevet 23. november 2004 Del Skrevet 23. november 2004 Nå er det ikke helt bra å lagre passord i klartekst men... Lenke til kommentar
Veritas84 Skrevet 23. november 2004 Forfatter Del Skrevet 23. november 2004 takk. jeg forstår selve oppbygningen av innlogginsfunksjonen, men jeg får ikke vb til å gå igjennom databasen for å sjekke om den finner et brukernavn med passord som stemmer med det som brukeren har skrevet inn i textboksene... Lenke til kommentar
Kirikiri Skrevet 23. november 2004 Del Skrevet 23. november 2004 Hvis du sørger for å ha kun unike brukernavn i basen din, så trenger du ikke noe særlig logikk i forhold til sjekking av passord i databasen. Hent ut dbbrukernavn og dbpassord der dbbrukernavn = det som er tastet inn. Så kan du gjøre sjekk mot passord i .net-koden, og ikke i databasespørringen. Når det gjelder lagring av passord, så er det et poeng å ikke lagre det i klartekst. Det du kan gjøre, er å kjøre MD5 hash-kryptering (innebygd i .NET) når du skriver passord til databasen. Så gjør du samme kryptering av det som er skrevet inn i innloggings-boksen. Hvis disse to er like, så er passordet det samme. "Ulempen" er at ikke kan gå inn i basen og sjekke hva som er passordet til en bruker som har glemt passordet sitt. Hvis de glemmer det, så må de få et nytt, og dette må legges inn i basen. I så fall så er jo moroa hvordan du skal gi dem det nye passordet, siden e-post ikke er helt bombesikkert. Men det er i hvertfall en mulighet. Kirikiri Lenke til kommentar
Veritas84 Skrevet 23. november 2004 Forfatter Del Skrevet 23. november 2004 Dette er et skoleprosjekt hvor man ikke skulle tenke på sikkerhet. jeg vil ganske enkelt at brukernavn og passord sjekkes opp mot en tabell i databasen og gir melding om vellykket innlogging dersom infoen brukeren skrev inn stemmer med infoen i databasen... Lenke til kommentar
Kirikiri Skrevet 23. november 2004 Del Skrevet 23. november 2004 Eh, da høres det mer ut som et Oracle-query-problem enn et .NET-programmeringsproblem. I T-SQL vil du kunne skrive inn noe sånn som select userid from tblUsers where UserName like 'bjarne' and Password like '39plei' Ikke sikker på hva som er syntaks i Oracle, men helt ulikt er det sikkert ikke. Hvis du får tilbake en userid, så har du en match, hvis du ikke får tilbake en userid, så har du ingen match. Du kan også bruke Username i stedet for UserID, men i en virkelig database bør du ha en form for unik id på slike data som brukere, så du bør egentlig legge det til hvis du ikke har det. Du får det til i .NET ved å lage en function som har UserName og PassWord som argumenter, og som returnerer UserID, som du videre kan lage logikk rundt. (If UserID > 0 then "OK" else "Feil" end if ) Kirikiri Lenke til kommentar
Veritas84 Skrevet 29. november 2004 Forfatter Del Skrevet 29. november 2004 får det nesten til....har foreløpig bare prøvd meg frem med brukernavn: Dim row As DataRow Dim username As String Dim dbusername As String username = txtUser.Text If username = "" Then MsgBox("Skriv inn brukernavn!") Else For Each row In DsPassord1.PASSORD.Rows dbusername = (row(0)) If username <> dbusername Then Else MsgBox("Velkommen!") End If Next End If End Sub Hvordan blir koden når jeg vil hente ut dbPassword fra databasen? databasen består av tabellen PASSORD med attributtene Brukernavn og Passord. Håper noen kan hjelpe. Lenke til kommentar
Kirikiri Skrevet 29. november 2004 Del Skrevet 29. november 2004 Select passord from PASSORD where Brukernavn like '[username]' hvis du skriver TSQL. Så må du klare å sende inn username til spørringen din. Kirikiri Lenke til kommentar
Veritas84 Skrevet 29. november 2004 Forfatter Del Skrevet 29. november 2004 takk for hjelpen...men jeg vet ikke hva TSQL er så jeg tror heller ikke vi bruker det. vi henter ut data med et dataasapter og legger dataen inn i en datagrid... kan noen hjelpe? Lenke til kommentar
Kirikiri Skrevet 30. november 2004 Del Skrevet 30. november 2004 TSQL er navnet på Microsoft type SQL-spørringer, så vet du det. Men syntaksen for spørringer er ganske lik i MS og Oracle, så spørringen burde fungere. Kan jeg spørre om hvorfor dere skal legge dataene fra spørringen inn i en datagrid? Det er jo ikke som om det kommer mye data ut, hvis du bare skal sjekke om et passord stemmer eller ikke. Kirikiri Lenke til kommentar
Veritas84 Skrevet 2. desember 2004 Forfatter Del Skrevet 2. desember 2004 hmm...hvor ble det av svar 14 og 15 på denne tråden? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå