Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dobar način za implementaciju korisničkih uloga?

[es] :: .NET :: ASP.NET :: Dobar način za implementaciju korisničkih uloga?

[ Pregleda: 1693 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-a-1.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Dobar način za implementaciju korisničkih uloga?29.04.2009. u 23:01 - pre 182 meseci
Gospodo imam problem "filozofske" prirode te bih da vas konsultujem...

Do sada sam više puta pravio veb aplikacije koje su zahtevale deo za administratora, moderatora, posetioca itd... Međutim počeo sam jedan malo veći projekat, za koji se nadam da će biti dobro posećen pa bih i da razrešim neke od svojih dilema. Jedna je ova sa sistemom korisnika.

Predpostavimo da postoji administrator, registrovani korisnik i običan posetilac. Admin će naravno imati neke dodatne stranice u navigaciji i potrebno je da ima privilegije za pristup tim stranicama.

Moje rešenje je da napravim klasu "Korisnik" te iz nje izvedem sve potrebne "titule", dakle admin ima svoju klasu, posetilac svoju itd. Osnovna klasa ima funkcije za dodavanje novog korisnika, logovanje, proveru da li je korisnik ulogovan i sve te funkcionalnosti.

Dakle kod u load-u master stranice bude na foru:
Code:

//jedan način logovanja
Korisnik k = new Korisnik(this.Request);
if( k.Ulogovan ) ... //ovo je ne bitno 
k.Logout( this.Response);

//drugi način
Korisnik k2 = Korisnik.Login(username, password);

// Ovo je bitno - kako proverava da li je korisnik sme da poseti ovu adresu:
if( k2.proveriPrava( httpAdresa) == false) ... redirektuj ga negde ...


Enivej, kako radi ova funkcija proveriProva()... U application_Start funkciji sam iz određenih fajlova stavio da se čitaju liste za prava pristupa i linkove u navigaciji za sve tipove korisnika i to se snimi u nekoj static listi za svaku klasu posebno. Znači učita iz fajla sve stranice kojima može da pristupi posetilac i to ubaci u static listu iz Posetilac klase i tako za svaku klasu. I to se jelte uradi jednom kada se izvrši application_start.

Ono što je mene pitanje je - da li je ovo pametno ovako? Ili je bolje rešenje da imam tabelu u bazi koja će čuvati adrese stranica kojima određena grupa može da pristupi, pa da kad god bude page_load master stranice da se uradi sql upit i proveri da li postoji pravo pristupa...?

Znam da oba rade za sajtove sa malo posećenosti, mene zanima šta je od ovoga (ili nešto treće?) najoptimalnije rešenje...

Hvala na pažnji i oprostite na dužini poruke
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 715
82.117.195.*

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: Dobar način za implementaciju korisničkih uloga?30.04.2009. u 07:03 - pre 182 meseci
Dotle sam i ja od prilike doso s tim sto sam u startu imao 25 rola i ova provera koju si naveo mi se cinila i sada mi se cini preterana jer bih morao u svakoj strani (~600) da definisem sta i kako. Na svu srecu videh sta je i kako radi web config tool (wct) tj. wct dozvole definise u xml fajlovima koje smesta u foldere u kojima su strane znaci bitno je da ti strane budu rasporedjene po folderima tako da kad nabacish npr. treeview i vezes ga za web.sitemap u kome si definisao sve linkove za strane on pokazuje samo strane kojima mozes da pridjes zavisno u kojoj si roli !!! Cool, Super, Extra ali wct ne radi remote tako da ne mozes da ga postavish na web server pa zato nabacish custom resenje koje ne znam gde mi je sad ali ako te interesuje naci cu ga, stvarno je super. Inace provere koju si naveo gore ce ti trebati za autentifikaciju na web servis ako ga budes imao bar sam ja tako nekako morao..

Just my 2c
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

deerbeer
Beograd

Član broj: 174418
Poruke: 1189
*.adsl-1.sezampro.yu.



+395 Profil

icon Re: Dobar način za implementaciju korisničkih uloga?30.04.2009. u 09:31 - pre 182 meseci
Jesi probao sa Forms Authentication metodom : http://www.15seconds.com/Issue/020220.htm
S obzirom da korisnike citas iz odredjenih fajlova, ovo sve mozes preusmeriti u web.config fajl
i koristiti standardne .NET klase i rutine za autentikaciju .


Viva lollapalooza
 
Odgovor na temu

pl4stik
Senior .NET programmer/Consultant
oDesk
NI na nebu NI na zemlji

Član broj: 173596
Poruke: 715
82.117.195.*

Sajt: xx-auth.com.azhar.arvixe...


+31 Profil

icon Re: Dobar način za implementaciju korisničkih uloga?30.04.2009. u 09:47 - pre 182 meseci
Evo ga:

http://www.4guysfromrolla.com/articles/052307-1.aspx

Super stvar
To sto nekoliko miliona ljudi tvrdi da nisi u pravu ne znaci da stvarno nisi - Frank Zappa

https://youtu.be/DLe358DPGXU
 
Odgovor na temu

toxi_programer
Nemanja Todić
Beograd

Član broj: 104396
Poruke: 464
*.adsl-a-1.sezampro.yu.

Sajt: www.articles411.com


+8 Profil

icon Re: Dobar način za implementaciju korisničkih uloga?30.04.2009. u 14:59 - pre 182 meseci
Zahvaljujem vam na preporukama. :)

Probaću to da vidim da li odgovara, ali ipak sam više želeo da čujem šta je od ona dva načina koje sam ja naveo efikasnije... :)
Dakle da imam one static liste sa podacima ili da na svako otvaranje stranice radim sql upit i vidim da li je ta stranica, tom korisniku, dozvoljena.
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Dobar način za implementaciju korisničkih uloga?

[ Pregleda: 1693 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.