26. februar 2003 - 19:06Der 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å.
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.)
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.
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...
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.
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 :)
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...).
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
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:
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!
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 :)
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...
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.
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
Synes godt om
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.
Synes godt om
Ny brugerNybegynder
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.