Gå til innhold

hente logginn-info fra database


Anbefalte innlegg

Skrevet

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.

Videoannonse
Annonse
Skrevet

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

Skrevet

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...

Skrevet

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

Skrevet

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...

Skrevet

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

Skrevet

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.

Skrevet

Select passord

from PASSORD

where Brukernavn like '[username]'

 

hvis du skriver TSQL.

Så må du klare å sende inn username til spørringen din.

 

Kirikiri

Skrevet

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?

Skrevet

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...