Vă mulțumim pentru susținere

ASP.NET construit în profilul de utilizator versus clasa / tabelele de utilizatori vechi

Căutăm sfaturi cu privire la cele mai bune practici în legătură cu utilizarea funcției Profil în ASP.NET.

Cum decideți ce ar trebui păstrat în profilul utilizator încorporat sau dacă ar trebui să creați propriul tabel de baze de date și să adăugați o coloană pentru câmpurile dorite? De exemplu, un utilizator are un cod poștal, ar trebui să salvez codul poștal în propriul meu tabel sau ar trebui să îl adaug în profilul web.config xml și să îl accesez prin intermediul mecanismului de profil ASP.NET al utilizatorului?

Pro / contra pe care mă pot gândi acum sunt faptul că, din moment ce nu cunosc foarte bine profilul (este un pic de chiar acum), probabil că pot face orice vreau dacă (de exemplu, SQL pentru a obține toți utilizatorii în același cod poștal ca și utilizatorul curent). Nu știu dacă pot face același lucru dacă folosesc profilul ASP.NET.

0
adăugat editat

5 răspunsuri

Cred că depinde de câte domenii ai nevoie. Din câte știu, profilurile sunt, în esență, un șir lung care se împarte la dimensiunile câmpului dat, ceea ce înseamnă că acestea nu scară foarte bine dacă aveți multe domenii și utilizatori.

Pe de altă parte, ele sunt construite, deci este o modalitate ușoară și standardizată, ceea ce înseamnă că nu există o curbă mare de învățare și o puteți utiliza și în aplicațiile viitoare, fără a fi nevoie să-l optimizați într-o nouă structură de tabel.

Rularea propriului lucru vă permite să puneți-o într-o bază de date normalizată în mod corespunzător, care îmbunătățește drastic performanța, dar trebuie să scrieți destul de mult toate codul de gestionare a profilului.

Editare: De asemenea, profilurile nu sunt stocate în memoria cache, astfel încât fiecare acces la un profil se duce mai întâi la baza de date (este apoi stocat în cache pentru acea solicitare, dar următoarea solicitare o va primi din baza de date din nou)

Dacă vă gândiți să scrieți propriul lucru, poate o Furnizor de profil personalizat vă oferă cele mai bune din ambele lumi - integrare fără probleme, dar lucrurile personalizate pe care doriți să le faceți.

0
adăugat

În experiența mea, cel mai bine este să păstrez informațiile din profil la un nivel minim, doar să puneți lucrurile esențiale care sunt direct necesare pentru autentificare. Alte informații, cum ar fi adresele, ar trebui salvate în baza dvs. de date proprie prin logica aplicației proprii, această abordare fiind mai extensibilă și mai ușor de întreținut.

0
adăugat
> Alte informatii cum ar fi adresele ar trebui salvate in baza de date proprie prin logica aplicatiei proprii OK, asa ca aceasta pare sa fie calea de urmat, poate cineva sa-mi spuna cum sa fac cel mai bine conectarea tabelelor utilizatorilor asp_ la acest nou tabel? ar trebui să folosesc numele utilizatoruluiNumele în asp_ ca link, ID-ul utilizatorului (acel ghid urât nu știu cum să ajung) sau ce?
adăugat autor csmba
De asemenea, puteți rula propriul tabel de utilizatori care ar conține aceleași informații, apoi utilizați variabilele sesiunii sau ceva similar, în acest caz veți avea control complet. Am trecut acum la propriile tabele de utilizatori și nu regret.
adăugat autor Sean

Cred că este mai bine să-l folosești pentru date suplimentare care nu sunt critice pentru utilizator, care este în mod normal important doar atunci când acel utilizator se conectează oricum. Gândiți-vă la date care nu ar sparge nimic important dacă a fost șters.

desigur, aceasta este preferința personală, dar altele au ridicat și alte probleme importante.

De asemenea, foarte util având în vedere că poate fi utilizat pentru un utilizator neautentificat al cărui profil este menținut cu un cookie anonim.

0
adăugat

profilul utilizatorului este un cadru frumos curat pentru personalizarea individuală (AKA. Proprietăți de profil). (de exemplu, iGoogle) problema este că nu este concepută pentru interogare și nu este ideală pentru partajarea datelor cu utilizatorul public (totuși ați putea să o faceți, cu performanțe reduse)

astfel încât, dacă doriți să îmbunătățiți experiența personalizată a utilizatorului, profilul utilizatorului ar fi o modalitate bună de a merge. în caz contrar, folosiți propria clasă și masa ar fi o soluție mult mai bună.

0
adăugat

Am construit doar 2 aplicații care au folosit furnizorul de profil. De atunci am rămas departe de folosirea lui. Pentru ambele aplicații l-am folosit pentru a stoca informații despre utilizator, cum ar fi numele companiei, adresa și numărul de telefon.

Acest lucru a funcționat bine până când clientul nostru a vrut să găsească un utilizator în unul dintre aceste domenii. Căutarea a implicat looparea prin profilul utilizatorilor fiecare și compararea informațiilor cu criteriile de căutare. Pe măsură ce baza de utilizatori a crescut, timpul de căutare a devenit inacceptabil pentru clientul nostru. Singura soluție a fost crearea unui tabel pentru stocarea informațiilor despre utilizatori. Viteza de căutare a crescut foarte mult.

Aș recomanda să stocați acest tip de informații în propriul tabel.

0
adăugat