Avatar billede doncarnage Nybegynder
03. december 2008 - 12:04 Der er 2 kommentarer og
1 løsning

Login system.. den logger kun ind med sidste bruger i databasen?

Hejsa..

Jeg har lavet et meget simpelt loginsystem, hvor den henter brugerne ud fra en database.. Det ser ud som følgende:

            string strBruger = "";
            string strKode = "";

            OleDbConnection MyConnection = new OleDbConnection();

            MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|xxx.mdb";
            string strSQL = "SELECT * FROM xxx";

            OleDbCommand objCommand = new OleDbCommand(strSQL, MyConnection);
            OleDbDataReader objDataReader = null;

            try
            {
                MyConnection.Open();
                objDataReader = objCommand.ExecuteReader();
                while (objDataReader.Read() == true)
                {

                    strBruger = Convert.ToString(objDataReader["Brugernavn"]);
                    strKode = Convert.ToString(objDataReader["Adgangskode"]);


                    if (strBruger == tbBrugernavn.Text && strKode == tbAdgangskode.Text)
                    {
                        lblHer.Text = "Du er nu logget ind";

                    }
                    else
                    {
                        lblHer.Text = "Brugernavn eller adgangskode er forkert - Prøv igen";
                    }
                }
                MyConnection.Close();
                objDataReader.Close();
            }
            catch (Exception exept)
            {
                Response.Write(exept);
            }

Men det gider tilsyneladende kun at logge ind med den sidste bruger i databasen :/

Dvs hvis databasen ser sådan her ud:

ID - Brugernavn - Adgangskode
-----------------------------
1  - test      - 123
2  - ged        - ged
3  - kat        - mis

Så gider den kun logge ind hvor brugernavnet = kat og adgangskoden = mis

Hvordan kan det være og hvordan løser jeg det?
Avatar billede keysersoze Guru
03. december 2008 - 12:32 #1
Der er flere underlige ting i din kode - først og fremmest så opstår fejlen fordi du jo løber samtlige poster igennem og så er det kun den sidst satte værdi der tæller, dvs logger du ind med id 2 vil teksten først blive sat til "forkert", dernæst vil den blive sat til "logget ind" og til sidst vil den blive sat til "forkert" så skal ovenstående virke er du nødt til at hoppe ud af dit loop hvis brugeren bliver fundet.

Du bør også undgå at hive mere data ud af databasen end nødvendigt - dvs lav en sql med en where-statement på brugernavn og adgangskode og returneres der 1 post er brugeren logget ind, ellers er brugeren ikke logget ind.

endelig - hvis du ikke har set det - er der et fuldstændigt bruger/rolle system indbygget i .net allerede.
Avatar billede doncarnage Nybegynder
03. december 2008 - 18:26 #2
Jeps okay.. Jeg prøver noget andet så ;)

Smid et svar og du får points
Avatar billede keysersoze Guru
04. december 2008 - 17:38 #3
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