Avatar billede dj-hupi Nybegynder
02. april 2005 - 00:28 Der er 16 kommentarer og
1 løsning

txtusername = rs("username")

Er ved at lave et simple login script..
Men jeg kan ikke finde ud af hvordan jeg skal sammen ligne txtusername.text med mine recordsets ?

    Sub Action_Click(sender As Object, e As EventArgs)

        If txtusername.text = datafield="username" and txtpassword.text = datafield="password" then
      label1.text = "Korrekt"
    Else
      lable1.text = "Forkert"

    End Sub

Kan ikke rigtig hitte ud af det ...
Avatar billede dj-hupi Nybegynder
02. april 2005 - 00:31 #1
Hov manglede End if :P
Avatar billede snepnet Nybegynder
02. april 2005 - 00:51 #2
halløjsa... jeg synes du skal tage et kig sådan en artikel som denne :

http://www.codeproject.com/aspnet/formsroleauth.asp
(rolebased security with formsauthentication)

i artiklen benyttes en datareader til at tilgå data med - den er nok det tætteste du kommer på et recordset i asp.net.

mvh
Avatar billede burningice Nybegynder
02. april 2005 - 08:13 #3
og hvis der skal laves et konkret eksempel til din kode bliver det noget i retningen af

(forgive my c#)

string username = txtusername.Text;
strng password = password.Text;

OleDbConnection conn = new OleDbConnection(connstring);
OleDbCommand command = new OleDbCommand(String.Format("SELECT * FROM tblUsers WHERE (username = '{0}') AND (password = '{1}')", username, password), conn);

conn.Open();

OleDbDataReader reader = command.ExectuteReader();

if (reader.HasRows) {
  // brugeren blev fundet
} else {
  // ingen bruger
}

reader.Close();
conn.Close();
Avatar billede arne_v Ekspert
02. april 2005 - 22:49 #4
Lige netop til dette specifikke formål var parameters måske en god ting ...
Avatar billede burningice Nybegynder
02. april 2005 - 23:09 #5
:) du er meget glad for parameters...

Ved ikke om det er bedre til præcis dette formål end alle andre
Avatar billede arne_v Ekspert
02. april 2005 - 23:13 #6
Prøv og test med følgende brugernavn og password

forkert' OR 'X'='X
forkert' OR 'X'='X
Avatar billede arne_v Ekspert
02. april 2005 - 23:16 #7
Men ja - parameters / prepared statements løser mange problemer:
* man undgår SQL injection fra hackere
* man kan håndtere O'Toole som navn og lign.
* man undgår de evindelige tids formaterinsg problemer
* hvis man skal udføre mange ens SQL sætninger kan det give bedre performance

Det er 4 fluer med et smæk.
Avatar billede burningice Nybegynder
02. april 2005 - 23:56 #8
fuldstændig rigtigt... bruger også selv parametre så ofte jeg kan... men det kræver bare en del flere linjer kode, hvilket gør det lidt træls nogen gange at komme med et hurtigt eksempel på.
Avatar billede dj-hupi Nybegynder
04. april 2005 - 10:27 #9
Må indrømme jeg ikke er særlig god til ASP.NET ...
Nogle eks. på hvordan sådan parameters / prepared statements kunne se ud ?
Avatar billede burningice Nybegynder
04. april 2005 - 12:02 #10
sql = "SELECT username, password FROM tblUsers WHERE (username = ?username) AND (password = ?password)";

OleDbCommand command = new OleDbCommand(sql, conn);

command.Parameters.Add("?username", OleDbDataType.Text);
command.Parameters["?username"].Value = "hej hej";

command.Parameters.Add("?password", OleDbDataType.Text);
command.Parameters["?password"].Value = "Whe";

conn.Open();
OleDbDataReader reader = command.ExecuteReader();
Avatar billede dj-hupi Nybegynder
04. april 2005 - 12:06 #11
Okei
Jeg fatter bare ikke hvordan i kan finde rundt i det OleDbTyper og de andre statements osv .. :S
Avatar billede burningice Nybegynder
04. april 2005 - 12:24 #12
:) det er bare noget man kan.. hehe... der lærer man kun ved at skrive det om og om og om igen, og gerne i notepad ell. lign. Man bliver doven at bruge Visual Studio og Intellisense
Avatar billede dj-hupi Nybegynder
04. april 2005 - 12:24 #13
hehe ja det tror jeg gerne ... Jeg bruger pt WebMatrix ...
Avatar billede dj-hupi Nybegynder
12. april 2005 - 12:01 #14
Cyberfessor, var der mulighed for at du kunne skrive det i VB code ?
sql = "SELECT username, password FROM tblUsers WHERE (username = ?username) AND (password = ?password)";

OleDbCommand command = new OleDbCommand(sql, conn);

command.Parameters.Add("?username", OleDbDataType.Text);
command.Parameters["?username"].Value = "hej hej";

command.Parameters.Add("?password", OleDbDataType.Text);
command.Parameters["?password"].Value = "Whe";

conn.Open();
OleDbDataReader reader = command.ExecuteReader();
Avatar billede burningice Nybegynder
12. april 2005 - 17:10 #15
uhm... jeg kan da prøve

sql = "SELECT username, password FROM tblUsers WHERE (username = ?username) AND (password = ?password)"

Dim command As OleDbCommand = New OleDbCommand(sql, conn)

command.Parameters.Add("?username", OleDbDataType.Text)
command.Parameters("?username").Value = "hej hej"

command.Parameters.Add("?password", OleDbDataType.Text)
command.Parameters("?password").Value = "Whe"

conn.Open()
Dim reader As OleDbDataReader = command.ExecuteReader()
Avatar billede dj-hupi Nybegynder
26. marts 2010 - 23:05 #16
Kom med et svar =)
Avatar billede burningice Nybegynder
15. maj 2010 - 02:01 #17
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester