Avatar billede eskeeske Nybegynder
26. februar 2003 - 19:06 Der er 19 kommentarer og
1 løsning

Login Funktion

Er der nogen som vil sige noget klogt om den rigtige måde at lave login (til brug i et administrations system).

Jeg vil gerne kunne logge på som overadministrator, og der tilføje nye brugere, med brugernavn og password.

Hvilken metode er mest hensigsmæssig at bruge til sådan et system, og er det besværligt eller let. Er der nogle problemer man skal være specielt opmærksompå.

VH
Avatar billede simon.ulsnes Nybegynder
26. februar 2003 - 19:15 #1
Det ville være mest oplangt at bruge Forms Authentification, da alt det besværlige (cookies og alting) allerede er taget højde for. Det er indbygget i ASP.NET..
Brugere og deres rettigheder osv. tilføjes til web.config, jeg er sikker på at der kan programmeres procedurer som foretager brugeradministration. (via System.Configuration-namespacet, evt.)

// Simon
Avatar billede z42cool Nybegynder
26. februar 2003 - 19:17 #2
Jeg vil klart foreslå dig at anvende Integrated Windows authentication da det giver langt den største sikkerhed!
Avatar billede eskeeske Nybegynder
26. februar 2003 - 19:23 #3
Men hvad er Integrated Windows authentication er det sådan noget hvor folk kan logge på pga af at de allerede har logget på windows da de tænte PC´en. Fordi det kan jeg ikke bruge.

Det andet lyder bedre med det andet, men problemet er bare at jeg godt ville kunne tilføje nye brugere via et web-interface og altså uden at skulle rette i web.config.
Avatar billede eskeeske Nybegynder
26. februar 2003 - 19:24 #4
Og hvordan giver Window Authetication større sikkerhed?.

Hvordan kan man bryge ind i det andet?
Avatar billede simon.ulsnes Nybegynder
26. februar 2003 - 19:30 #5
eskeeske >> Som sagt er det meget muligt at du kan ændre i web.config via System.Configuration-namespacet, selvom jeg ikke er sikker og det ikke er testet. Men ellers er det jo sådan set bare en normal XML-fil som du kan hente ind i et XmlDocument eller DataSet og rette i som du lyster...

// Simon
Avatar billede eskeeske Nybegynder
26. februar 2003 - 19:44 #6
Det er jo genialt. Tak. Omkring sikkerhed, jeg regner med at omkranse det hele af et IIS password, således at man både skal igennem IIS passworded og så web-passworded. Det må give meget sikkerhed.

Jeg ser lige om der kommer flerer kloge kommentarer, og så kigger jeg tilbage imorgen.

VH
Avatar billede burningice Nybegynder
26. februar 2003 - 20:16 #7
simon.ulsnes>> hvis man vil bruge Forms Auth. i større sammenhæng, så skal man lade være med at bruge web.config til at gemme sine brugere i !!

eskeeske>> som det allerede er foreslået så er det det nemmeste at bruge Forms Auth. På din loginside skal du dog tjekke op imod en database istedet for f.eks. web.config-filen for at tjekke om en given bruger findes. På den måde er det også utrolig nemt at lave et useradmin-interface, da du, forhåbenligt, har rodet med ADO :)
Avatar billede simon.ulsnes Nybegynder
26. februar 2003 - 20:22 #8
cyberfessor >> Hvordan kan man ellers? Jeg spørger af ren interesse, jeg har ikke stødt på andre metoder (det er også begrænset hvor meget ASP.NET jeg har lavet...).
Avatar billede burningice Nybegynder
26. februar 2003 - 20:34 #9
altså.. Forms auth. det er jo bare en teknik, som du selv siger, som er indbygget i asp.net. For at få det til at virke skal man have en loginside, og på den kan man have følgende kode

FormsAuthentication.RedirectFromLoginPage("blahbla", PersistForms.Checked);

Nu er det selvfølgelig ikke så smart at den kode bare bliver udført hver gang man kommer ind på siden, så derfor skal der en form for tjek på... det kan f.eks. være følgende

if (txtPassword == "Hej") {
FormsAuthentication.RedirectFromLoginPage("blahblah", PersistForms.Checked);
}

det er dog ikke særlig dynamisk og det er her web.config-filen kommer en... det er en nem måde at tilføje nogle users som man nemt kan tjekke op imod ved hjælp af configuration, men... indrøm det... en textfil med måske 10000 forskellige users... det er ikke særlig fleksibelt... derfor bruger man en f.eks. en database istedet.

Jeg har selv en loginside som bl.a. indeholder følgende kode:

    if (objDataReader.Read()) {
        FormsAuthentication.RedirectFromLoginPage(objDataReader[0].ToString(), false);
    } else {
      //Invalid credentials supplied, display message
      lblMessage.InnerHtml= "Invalid login credentials";
    }

objDataReader er indholdet af databasen som matcher med en given bruger og et givent brugernavn :)
Avatar billede simon.ulsnes Nybegynder
26. februar 2003 - 20:37 #10
Men hvad med FormsAuthentification.Logout() for eksempel?
Avatar billede burningice Nybegynder
26. februar 2003 - 20:42 #11
hvad med den...? (det hedder da vist signout??)

jeg har følgende metode som bliver udført når brugeren trykker på LogUd (en knap)

    private void btnLogUd_Click(Object sender, EventArgs E)
    {
        FormsAuthentication.SignOut();
        Response.Redirect("default.aspx");
    }
Avatar billede burningice Nybegynder
26. februar 2003 - 20:45 #12
du kan se et eksempel på et system hvor der bliver brugt en xml-fil til at gemme brugerne

ms-help://MS.NETFrameworkSDK/cpguidenf/html/cpconcookieauthenticationusinganxmlusersfile.htm

men som sagt... Forms Auth. er FULDSTÆDNIG ligeglad om hvordan du tjekker om det personen skriver som brugernavn og adgangskode er det rigtige...
Avatar billede simon.ulsnes Nybegynder
26. februar 2003 - 20:49 #13
Men hvordan finder FormsAuthentication.Authenticate(username, password) ud af om den skal returnere true eller false?
Avatar billede z42cool Nybegynder
26. februar 2003 - 21:40 #14
Du skal bare huske på, at hvis du vælger forms authentication fremfor windows integrated, så skal du køre dit signin over ssl da passwords ellers sendes ukrypteret over internettet!
Avatar billede burningice Nybegynder
26. februar 2003 - 23:04 #15
simon.ulsnes>> det er ikke en metode men en event...

du skal huske på at FormsAuthetication IKKE står for selve login-tingen... altså det med at tjekke om en given bruger findes og har lov at logge ind. Den kode skal man selv skrive. FormsAuthentication tilbyder derimod en nem måde at sikre filer og mapper for at f.eks. ikke-autheticerede brugere ikke må se dem, og så det med cookies som du selv nævner :)
Avatar billede simon.ulsnes Nybegynder
26. februar 2003 - 23:23 #16
Aha... Det var da lige godt pokkers... Authenticate(...) gør altså ikke andet end at placere cookies de rigtige steder og lave User.Identity-objektet? Jeg tror vist lige jeg skal have studeret det her lidt nærmere...
Avatar billede burningice Nybegynder
26. februar 2003 - 23:27 #17
det er nemlig rigtigt :)
Avatar billede eskeeske Nybegynder
27. februar 2003 - 00:00 #18
Så fik vi det på plads.

Og altså nu bare for at fortsatte, nu skrev du (cyberfessor) "da du, forhåbenligt, har rodet med ADO :)". Men altså hvor svært kan det være, handler det meste ikke bare om at kunne lidt SQL.

Personligt har jeg valgt at springe mer eller mindre hen over det der ADO, og bare lave det hele lidt mere som SQL.

Mvh
Avatar billede askhoej Praktikant
27. februar 2003 - 09:04 #19
Der er vel ikke noget i vejen med at bruge den klassiske ASP brugerkontrol med en database med bruger/rettigheder etc., Login og så tjek på session variablen på de enkelte sider/moduler i ens applikation - i stedet for at bruge det indbyggede Sikkerhed i ASP.NET. Jeg synes personlig at dette giver den største fleksibilitet.

/askhoej
Avatar billede Slettet bruger
27. februar 2003 - 14:25 #20
Jeg bruger selv Forms Authentification. Mine brugere ligger i en database og hver bruger tilhører en eller flere grupper. Derved kan jeg udnytte Forms Authentification til at fortage tjek om men er medlem af en gruppe og dermed har rettigheder til dit og dat. Det er utrolig nemt hvis man altså bruger dette princip.

Den portsl der er lavet på IBuySpyPortal fungere på samme måde. Man kan altid gøre det med en alm. session objekt osv som man gjorte i gamle dage men hvorfor ikke udnytte de muligheder der findes i Forms Authentification så er det meste lavet på forhånd.
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