Radim stranicu/aplikaciju u asp.net mvc-u 4. Nakon što se utipka korisničko ime i lozinka, ako je sve “validno”, gdje je najbolje spremiti korisničke podatke (User_ID, Role_ID, Full_Name)?
Ja sam prvo spremio u session, pr.:
Session[“User”] = User_ID.ToString() + “;” + Role_ID.ToString() + “;” + Full_Name ;
Ali onda sam se sjetio -> session hijacking i sve pada u vodu.
Malo sam guglao i naletio sam na jednog španjloca na youtube-u.
I to mi se čini dosta okej, ali nekako mislim da postoji nešto jednostavnije, pa ako se netko već susreo sa time, bilo bi mi drago ako može pomoći.
I da, naletio sam još na ovogkoji nepunih 70min priča, pomalo mi djeluje da on niti sam ne zna kaj radi - više mi djeluje kao da se sa strane koristi nekim papirima i tako radi - bar sam takav dojam dobio.
I da, još jedno pitanje… Vidim dosta često po nekim tutorialima ili video-ima, dosta ljudi radi bazu u Visual Studiu zajedno sa projektom, a ne zasebno tj., u SQL Server Managment Studiu, postoji li kakva velika razlika ili?
A korisnički podaci se i tako i tako spremaju u bazu koju asp.net mvc aplikacija sama generira i mislim da ti je to u 90% slučajeva dovoljno. U threadu ti piše i kako dodati nova polja da se kreiraju u bazi prilikom prvog pokretanja aplikacije.
Hah …zanimljivo.
Malo sam se zaribal time sto sam napravio “Empty project” i nemam sve te klase itd. :), ali puno si mi pomogao ovime, jednostavno sam zaboravio da postoji sve to vec gotovo.
Sad cu fino napravit novi projekt sa tim account controllerom i ostalim klasama i prekopirati u ovaj svoj postojeci projekt i sve fino uskladiti.
Ma ne moras raditi novi projekt. Mislim da se ne moras bojati da ce ti netko ukrasti session, asp.net vec po defaultu ekriptira cookie i jos stosta (httpcontext.user.identity.name - tamo drzi email ili userid, pa kada ti trebaju ostali podaci odes na bazu). Nemoj u sessionu drzati osjetljive podatke, to je jedino pravilo. A sto se tice kradje cookia, mislim da ti je tu ssl najbolje opcija (httcontext.user informacije su ekriptirane u cookiu, a ako imas ssl onda ce netko malo teze ukrast to).
Morao sam napraviti jer sam radio empty project a ne internet app., pa sam onda sve ovo sto sam napravio samo prekopirao. Uglavnom, nisam znao ovo za session - slucajno sam naletio na session hijacking pa me to malo “prepalo”. Dosta mi je pomogao CreatifCode sa svojim postom i kasnije sam malo guglao i naletio na ovaj LINK (jako dobar tutorial) pa kako ja (biser) nisam mogao dokucit kako dodat jos dodatna polja, CreatifCode mi je preporucio da pokusam ovako:
AccountController:
WebSecurity.CreateUserAndAccount(
model.UserName,
model.Password, new { Ime = model.Ime,
Prezime= model.Prezime,
Email = model.Email},
false);
i isto tako prvo dodati sve u AccountModel-u u:
[Table(“UserProfile”)]
public class UserProfile i RegisterModel i sve je radilo.