Avatar billede persjensen Nybegynder
01. maj 2008 - 19:31 Der er 8 kommentarer og
1 løsning

Simpelt login i Visual C#, ASP.Net

Godaften.. Jeg har læst en del topics igennem, men synes desværre ikke jeg kunne finde noget jeg rigtig kunne bruge til noget :( Da jeg er nybegynder indenfor sproget/scriptet prøver jeg derfor at spørge til råds...

Situationen er som følgende:

- Jeg vil gerne ha' lavet en login side, hvor man indtaster bruger og password. Hvis det er det rigtige bliver man redirected til en admin side, men hvis det er forkert skriver den en fejlmeddelelse og så må man prøve igen...

- Der skal kun være 1 bruger, så det burde derfor ikke være nødvendigt med database (såvidt jeg har forstået)

- Hvis man forsøger at åbne admin siden manuelt (uden at være logget ind), så skal den gå hen til login siden...

Hvordan gør jeg det ? :( Vil meget gerne have kode eksempler etc... Jeg håber meget at få hjælp til dette..! Det ville være guld værd!
Avatar billede nielle Nybegynder
02. maj 2008 - 09:14 #1
En anden af fordelene ved at bruge en database er, at man så kan ændre password og login, uden at skulle re-kompilere sin kode.

Helt simpelt kan det dog gøres sådan:

== Codebehind på login.aspx siden ==

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (this.TextBox1.Text == "persjensen" && this.TextBox2.Text == "hemmeligt")
            {
                Session["login"] = true;
                Response.Redirect("admin.aspx");
            }
            else
            {
                Session["login"] = false;
            }
        }

== Codebehind på admin.aspx siden ==

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["login"] == null || !(bool)Session["login"])
            {
                Response.Redirect("login.aspx");
            }

            Response.Write("Velkommen til administrations modulet");
        }
Avatar billede persjensen Nybegynder
02. maj 2008 - 18:08 #2
Det er bare helt kanon.. Det virker som det skal! ;)

Men er det en større omvæltning, hvis man skal gøre det gennem databaser? Hvordan ville det så komme til at se ud.. Det er jo self. smartere - også hvis man har flere brugere..

Tænkte i øvrigt også på.. Er der en måde hvorpå man så kan logge ud? Går ud fra at man så skal "nulstille" sessions..
Avatar billede nielle Nybegynder
03. maj 2008 - 07:09 #3
> Men er det en større omvæltning, hvis man skal gøre det gennem databaser?

Nej, det er bare i Button1_Click() funktionen at der skal kodes lidt om.


> Hvordan ville det så komme til at se ud.. Det er jo self. smartere - også hvis man har flere brugere..

Den er lidt svær at svare på. Hvis åbnermulighed for at have flere brugere, vil du måske også have at de har flere forskellige roller. Måske er der en administrator og måske er der nogen som bare er almindelige registrerede brugere.

Det er ikke fordi at det er svært at kode, men mængden af kode vokser da i takt med at du ønsker at styre hvad de skal kunne og hvorhenne.

Endeligt vil det afhænge lidt af hvilken database du skal bruge.

> Tænkte i øvrigt også på.. Er der en måde hvorpå man så kan logge ud? Går ud fra at man så skal "nulstille" sessions..

Det er i hvert fald en måde.
Avatar billede persjensen Nybegynder
04. maj 2008 - 00:17 #4
Fornemt.. Jeg vil prøve mig lidt frem med det så ;)

Hvis du smider et svar kan du få dine velfortjente points =)
Avatar billede nielle Nybegynder
04. maj 2008 - 07:05 #5
Svar :^)
Avatar billede nielle Nybegynder
05. maj 2008 - 16:17 #6
Takker for point :^)
Avatar billede persjensen Nybegynder
08. maj 2008 - 23:08 #7
Jeg skulle i øvrigt lige høre om du har 2 min til at forklare hvad der sker på admin.aspx når man inkluderer det du skrev:

            if (Session["login"] == null || !(bool)Session["login"])
            {
                Response.Redirect("login.aspx");
            }

Altså, hvordan forklarer man ovenstående?
Avatar billede nielle Nybegynder
09. maj 2008 - 16:16 #8
|| betyder eller:

Først tjekker jeg at Session["login"] overhovedet er blevet sat til noget:

... Session["login"] == null ...

Hvis man ikke gør det, får man en null-pointer fejl.

Dernæst tester jeg om Session["login"] er sat til true. Hvis den ikke er det er man jo ikke logget på. Dette gøres ved at caste til en boolsk variabel, og så såtte en not (!) foran:

... !(bool)Session["login"] ...

Til sammen bliver det til noget i stil med:

1) Hvis Session["login"] ikke er sat ELLER ...
2) ... hvis Session["login"] ikke er true SÅ
3) ... er man ikke logit ind endnu.
Avatar billede persjensen Nybegynder
09. maj 2008 - 16:32 #9
Kanont.. Jeg takker mange gange endnu en gang ;)
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