Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Gregorius
    őstag

    Újabb probléma:

    Szeretnék login formot használni, de nem tudom hogyan kell. :U
    Alapprobléma: kb. 40-50 usert kellene kiszolgálni, mindenkinek külön felhasználónév, jelszó, jogosultsági szint.

    A következőt gondoltam: a userek adatait eltárolnám egy adatbázisban.
    ID
    Név
    Jelszó
    Jogosultság
    Többi adat

    A login formra felteszek egy TextBoxot (TextBox1), amibe beüti a felhasználónevét, valamint egy másik Password (TextBox2) boxot is. Emellett lerejtek két másik mezőt is, amikhez nincs hozzáférése és nem is látszanak (TextBox3, TexTBox4).

    Amikor a felhasználó beüti a TextBox1-be a felhasználónevét, valamint a TextBox2-be a jelszavát és az OK gombra klikkel, akkor egy paraméterezett lekérdezést futtatnék, ahol a paraméter a felhasználónév lenne. Ha van találat az adatbázisban (vagyis van ilyen felhasználó), akkor ugye a TextBox3-ba beolvasom az adatbázisból a felhasználónevet, valamint a TextBox4-be az adatbázisban tárolt jelszót. Ezután már nincs más dolgom, mint összevetni a begépelt és a beolvasott jelszavakat.

    Ezt így meg is csináltam és működik is. Valszeg biztonsági szempontból szart sem ér, de tökre örülök neki. :)

    Két kérdés:
    1. Lehet ezt valahogyan elegánsabban csinálni? Mondjuk a TextBox3 és TextBox 4 kiküszöbölésével? Gondoltam, hogy beolvasom egy változóba egyből az adatokat, de béna módon csak vezérlőkre és azok értékeire tudok hivatkozni. Szóval valahogyan direktbe el lehet érni az adatbázist (MS SQL szerver)?

    2. Szükséges az adatok titkosítása? Jelenleg az adatbázisban nincsenek titkosítva a jelszavak, mert minek. Mondjuk nem is tudom, hogy ezt hogyan lehetne, egyáltalán ott célszerű őket tárolni? Úgy kellene megoldanom, hogy azért tudják változtatni, tehát érdemes lenne tárolni őket.

    Jól érzékelem előző posztjaid alapján, hogy a VB.NET-et bűvölöd? (System.Threading és hasonlók) Mert akkor az ADO.NET-tel lehet.
    Dim conn As New SqlConnection(...)
    ...
    Dim cmd As New SqlCommand(''SELECT TOP 1 Jelszó FROM júzertábla WHERE Név=@userName'', conn)
    cmd.Parameters.Add(''@userName'', TextBox1.Text)
    ' vagy .NET 2.0-ban
    ' cmd.Parameters.AddWithValue(''@userName'', TextBox1.Text)
    Dim rdr As SqlDataReader = cmd.ExecuteReader()
    Dim pwd As String
    If rdr.Read() Then
       pwd = rdr(0)
    Else
       ' nincs ilyen júzer
    End If
    rdr.Close()
    ' ha kell
    ' conn.Close()


    Az adatok titkosítására meg azt tudom mondani, hogy ha egyirányú hash-sel tárolod a jelszót, akkor nem szükséges se a jelszó, se a szerverrel kommunikáció titkosítása, csak az okozhat gondot, ha valaki nem csak lehallgatni tudja a kábelt, de bele is tud piszkálni.

    [Szerkesztve]

    [Szerkesztve]

Új hozzászólás Aktív témák