Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Ett inloggnings script...

Postades av 2004-09-20 18:11:49 - Jakob Hägg, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 2683 personer

Hej jag är en gammal asp programmerare som vill lära migg skriva korrekt och snygg c#.
<kod>
string Username = textBox1.Text;
string Password = textBox2.Text;

if(Username=="" | Password=="")
{
MessageBox.Show("Du måste ange användarnamn och lösenord!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}

string SQL = "SELECT * FROM tbKonton WHERE username='"+ Username +"'";
string CONstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Databaser+"databas.mdb;Jet OLEDB:Database Password=iop90;Persist Security Info=False";
OleDbConnection con = new OleDbConnection(CONstring);
OleDbCommand dc = new OleDbCommand(SQL, con);
OleDbDataAdapter da = new OleDbDataAdapter(dc);
DataSet ds = new DataSet();
da.Fill(ds, "tbKonton");
DataRowCollection konton = ds.Tables["tbKonton"].Rows;
int i = ds.Tables["tbKonton"].Rows.Count;

if(i==0)
{
MessageBox.Show("Det finns inget konto med det här användarnamnet!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}

foreach(DataRow rad in konton)
{

if(Password==?? Vad ska jag skriva för att få columen password från databasen???)
{
MessageBox.Show("Det gick att ansluta!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}

}
MessageBox.Show("Du angav fel lösenord!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Stop);
</kod>
Finns det något bättre sätt att skirva en loggin? Den här är väl säker eller?


Svara

Sv: Ett inloggnings script...

Postades av 2004-09-20 18:25:09 - Marcus Pettersson

Det finns ett mycket bra stöd för detta i asp.net. Föreslår att du kolla på avsnittet "AUTHENTICATION" och framför allt forms authentication.

/MarcusP


Svara

Sv: Ett inloggnings script...

Postades av 2004-09-20 18:40:02 - Jakob Hägg

Vart kan jag hitta det avsnittet? Gäller det bara asp.net?

Vh Jakob Hägg


Svara

Sv: Ett inloggnings script...

Postades av 2004-09-20 21:30:03 - Jakob Hägg

Kanske bör säga att jag ville ha hjälp med att ta fram värdet från databasen där i den sista if-satsen...


Svara

Sv: Ett inloggnings script...

Postades av 2004-09-21 08:10:17 - Johan Normén

Hej,

Först lite tankar kring säkerhet. Du gör två stora misstag, tyvärr.
1... du talar om för en ev hackar/cracker att du angett ett användarnamn som inte finns.
2... du talar om för en ev hacker/cracker att du angett ett lösenord som inte finns.

Med andra ord kan en hacker/cracker veta om han hon angett ett giltigt användarnamn och behöver bara
brute forca lösenorden.

Lösning. Om användarnamn och lösen är felaktigt skriv det. Du angav ogitliga inloggningsuppgifter eller liknande. Tala _Aldrig_ om vilka uppgifter/fält som var felaktiga.

Ser ut som du gör en Win Form applikation? Antar då att databasen ligger lokalt på datorn, måste du ha login då? För vem som kan ju titta genom dbn efter användare och logga in precis hur han vill.

Varför har du en login? syftet? Skall flera olika användare kunna logga in på samma klient på samma dator?

I övrigt är koden rätt sunkig, ledsen o säga det så hårt. Det finns mkt du kan justera för att få den smidigare.
Några synpunkter är:
Varför dataset om du bara vill veta om användaren finns?
Varfrö kolla en where efter endast användarnamn i din Select fråga o inte ta med både username och password i din where sats? Det gör att du direkt får ett svar om denna användare finns eller ej.
Ex om du kör med en DataReader så kollar du bara om den har rader har den det fanns en match med användarnamn och lösen.

Om du skall ha en flagga som talar om ifall användaren är inloggad eller ej så kan du köra en update sats istället, där du kör en update på ett InOnline fält eller liknande där användarnamn och lösen matchar. Om användaren finns får du ett affected rows värde tillbaka där 0 betyder att inget hände och allt över noll bevisar att användaren finns.

Det finns fler smidiga sätt för login, allt handlar om vad du o ditt system ställer för krav.

Mvh Johan


Svara

Sv: Ett inloggnings script...

Postades av 2004-09-21 14:03:20 - Jakob Hägg

Okej... Tack för tipsen... Men jag får det fortfarande inte att fungera...

string SQL = "SELECT * FROM tbKonton WHERE username='"+ Username +"' AND password='"+ Password +"'";
string CONstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Databaser+"databas.mdb;Jet OLEDB:Database Password=iop90;Persist Security Info=False";
OleDbConnection con = new OleDbConnection(CONstring);
OleDbCommand dc = new OleDbCommand(SQL, con);
int i = dc.ExecuteNonQuery();

if(i==1)
{
MessageBox.Show("Det gick att ansluta!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
else
{
MessageBox.Show("Det finns inget konto med det här användarnamnet!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Stop);
return;
}

Vad ska jag skriva istället för ExecuteNonQuery ??? Eller måste jag fylla ett DataSet för att få det att fungera?


Svara

Sv: Ett inloggnings script...

Postades av 2004-09-21 14:16:59 - Johan Bovin

Nåt sånt här kanske:

string SQL = "SELECT * FROM tbKonton WHERE username='"+ Username +"' AND password='"+ Password +"'";
string CONstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Databaser+"databas.mdb;Jet OLEDB:Database Password=iop90;Persist Security Info=False";
OleDbConnection con = new OleDbConnection(CONstring);
OleDbCommand dc = new OleDbCommand(SQL, con);
con.Open();
OleDbDataReader myReader= dc.ExecuteReader();
          
if(myReader.HasRows)
{
	MessageBox.Show("Det gick att ansluta!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
	MessageBox.Show("Det finns inget konto med det här användarnamnet!", "WI: Bokning", MessageBoxButtons.OK, MessageBoxIcon.Stop);
} 
con.Close();
myReader.Close();

Sen förstår jag inte varför du envisas med att ha return överallt... metoden kommer att returnera när den har gått klart. Använd dig av if satser på ett korrekt sätt så slipper du ha en massa return överallt.

Sen kan du ju fundera på om det är smart att spara lösenorden i klartext i din databas, kanske bättre att hasha dem och när du sedan skickar in ditt lösenord hashat istället. Då är du iallafall säkrare än om du sparar dem i klartext. Är säker på att Johan N har några bra länkar till sådant...


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
976
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies