Avatar billede roth Nybegynder
14. august 2003 - 11:56 Der er 1 kommentar og
1 løsning

sikkerhed på udvalgte sider via web.config

Jeg er ved at udvikle en webshop, og som så mange andre lignende sites så er der behov for at gøre dele af sitet tilgængeligt for udvalgte personer.
Der er 3 områder i systemet, som alle skal have forskellige adgangskrav:
roden (default.aspx, browse rundt i produkterne etc)
--her skal der være anonym access
/payment (diverse sider der har med pbs-betaling at gøre)
--her skal der kun være adgang for brugere der er logget ind
/admin (admin configurationssider, oprettelse af nye produkter mm)
--her skal der naturligvis kun være adgang hvis man er admin

Jeg ved det er muligt at løse det ved at indsætte kode i page_load på alle sider og så kontrollere på den bruger der er logget ind. Men det er besværligt, især hvis der skal ændres i det senere. Så jeg har browset lidt rundt og fundet ud af at det burde kunne lade sig gøre via web.config, men jeg kan ikke finde en ordentlig forklaring af hvordan. Noget med <authorization> delen og nogle <allow roles> sætninger, men hvor defineres roles og hvordan knyttes de til mine brugere i systemet?

p.s. Brugerlogin gemmes i en ms sql db og ved login oprettes et bruger-objekt som smides i session. Ved ikke om det er noget man skal bruge i forbindelse med beskyttelse af områder med web.config.
Avatar billede odegaard Nybegynder
14. august 2003 - 22:12 #1
Her er et simpelt eksempel du kan arbejde dig ud fra:
Smid dette i din web.config i roden af dit site:
<configuration>
    <system.web>
        <authentication mode="Forms">
            <forms name="MyAuth" loginUrl="login.aspx"
                protection="All"
                timeout="30" />
        </authentication>
    </system.web>
</configuration>

Smid denne her web.config i det bibliotek du vil have beskyttet:
<configuration>
    <system.web>
        <authorization>
          <deny users="?" />
        </authorization>
    </system.web>
</configuration>

I login.aspx autoriserer du folk ved at skrive (husk selvfølgelig først at checke username/password):
    FormsAuthentication.RedirectFromLoginPage(strUsername, false);
Den sidste værdi kan være true, hvis du ønsker at de skal huske login til næste gang.
Forsøger man at komme ind på en side der er beskyttet, bliver man automatisk redirected til login.aspx, og med ovenstående kommando bliver man redirected tilbage igen.
Avatar billede roth Nybegynder
23. september 2003 - 10:34 #2
havde totalt glemt det her spørgsmål, fik aldrig brug for det alligevel. Men du får da pointsne for at have svaret anyways :)
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
Kurser inden for grundlæggende programmering

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