[ VerbatimBOT @ 28.12.2006. 10:03 ] @
Kreirao sam svoj MembershipProvider, tako da sad gađam bazu na serveru, a ne kao lokalni fajl.
Preko aspnet_regsql.exe sam izgenerisao sve potrebne tabele u bazi.
E sad, obzirom da .NET izgeneriše tabelu za korisnike koja ima samo korisničko ime, lozinku, email i sigurnosno pitanje (a ja treba da dodam još i ime, prezime, jmbg i slično), dodao sam još jednu tabelu gde ću čuvati ostale potrebne informacije i da je vežem za aspnet_users.UserId koji je tipa uniqueidentifier.
ALI: kad god se neko registruje, Membership ga dva puta upiše u tabelu aspnet_users i dodeli mu (samim tim) i dva različita UserId-ja. Prema tome, ja ne mogu da vežem svoju tabelu za JEDAN UserId!
Jel ima neko rešenje?
[ bobanM @ 28.12.2006. 10:18 ] @

Pogledaj temu:

http://www.elitesecurity.org/t234508-0#1402683
[ VerbatimBOT @ 28.12.2006. 10:57 ] @
Citat:
ono sto treba da uradis je da kreiras custom provider tj. klasu koja ce biti nasledjena iz MembershipProvider abstraktne klase. Nakon toga ces morati da implementiras sve metode iz pomenute klase i na kraju da definises custom provajder u config fajlu.
http://msdn2.microsoft.com/en-us/library/6tc47t75.aspx
Primer implementacije custom provajdera ali za Access bazu, sto ne bi trebalo da predstavlja problem da ga izmenis.
http://msdn2.microsoft.com/en-us/library/44w5aswa(VS.80).aspx
Primer kako da konfigurises web.config

Ma video sam tu temu. Ali ne treba ja da pravim novi provider, već treba samo da "izmenim" postojeći (aspnet-ov), i jedina izmena je da se ne gađa lokalni fajl baze, nego baza na serveru. Samim tim, kada koristim postojeći provider, ne moram da implementiram metode (već su implementirane).
Meni treba samo odgovor zbog čega upisuje duple redove u tabelu aspnet_users i dodeljuje im 2 userID-ja koja su potpuno različita.
[ Dejan Vesic @ 28.12.2006. 11:37 ] @
Verovatno se kod za upis zove dva puta; recimo iz Page_Load i same kontrole i slično.

Daj kod koji radi kreiranje usera kao i gde je lociran
[ VerbatimBOT @ 28.12.2006. 11:59 ] @
Pa vrlo jednostavno, registracija mi se sastoji od gomile textbox i dropdown list kontroli. Kada se sve popuni, klikne se na dugme "Registruj me" i poziva se metoda klase membership
Code:

Membership.CreateUser()

Znači nisam nigde više pozvao tu metodu, osim u Click događaju za dugme. Ali to radi i kad se prave korisnici iz onog Configuration alata.
[ bobanM @ 28.12.2006. 15:40 ] @
Citat:

Kreirao sam svoj MembershipProvider, tako da sad gađam bazu na serveru, a ne kao lokalni fajl.

Prikazi kod za svoj MembershipProvider. Sta ti znaci "a ne kao lokalni fajl"?

Citat:

Ma video sam tu temu. Ali ne treba ja da pravim novi provider, već treba samo da "izmenim" postojeći (aspnet-ov), i jedina izmena je da se ne gađa lokalni fajl baze, nego baza na serveru. Samim tim, kada koristim postojeći provider, ne moram da implementiram metode (već su implementirane)

Prvo si kreirao svoj provajder pa sad kazes ne treba ja da pravim novim provajder. Pojasni malo sta si to tacno uradio.
Kako mislis da izmenis postojeci provajder ako ne nasledis klasu MembershipProvider i implementiras svoje metode.

Citat:

Pa vrlo jednostavno, registracija mi se sastoji od gomile textbox i dropdown list kontroli. Kada se sve popuni, klikne se na dugme "Registruj me" i poziva se metoda klase membership

Code:

Membership.CreateUser()


Znači nisam nigde više pozvao tu metodu, osim u Click događaju za dugme. Ali to radi i kad se prave korisnici iz onog Configuration alata.

Metoda koju si napisao mora da prihvati barem dva parametra username i password. Sta si prosledio datoj metodi?
[ VerbatimBOT @ 28.12.2006. 15:53 ] @
Ma prosledio sam joj sve parametre koje je tražila (inače mi ne bi ni kreirala user-a). Znam da mora, nego me je gore mrzelo da pišem.
Samo mi nije jasno zašto dva puta upisuje svakog korisnika?
Probajte i vi i videćete da i vama to radi.
[ bobanM @ 28.12.2006. 22:31 ] @
Ajde ti lepo daj kod da vidimo konkretno u cemu je problem.

Citat:

Probajte i vi i videćete da i vama to radi.

Hoce ako koristimo login kontrole i pored njih eksplicitno pozivamo metode za kreiranje korisnika.
[ VerbatimBOT @ 29.12.2006. 08:45 ] @
Ne. Kreiraj korisnika iz Configuration Manager-a i pogledaj tabelu aspnet_Users, videćeš dva zapisa sa istim korisničkim imenom.
Ja nisam ni koristio Login kontrolu, samo sam iz koda kreirao korisnika (jednom)!
Al nema veze, našao sam rešenje koje sam tražio!
voZdra!
[ maksvel @ 29.12.2006. 09:30 ] @
Citat:
VerbatimBOT:
Al nema veze, našao sam rešenje koje sam tražio!
voZdra!

Verbatime, a da ga podeliš sa nama??
[ VerbatimBOT @ 29.12.2006. 09:49 ] @
Pa ne verujem da će nekome koristiti, al zašto da ne, nisam znao da će nekoga interesovati.
Pa obzirom da se prilikom svakog kreiranja korisnika upisuje dva puta u tabelu aspnet_users i jednom u tabelu aspnet_membership, jednostavno sam vezao svoju novu tabelu za aspnet_membership. Nije nikakava mudrost!
Ali ono što mi nije i dalje jasno, zašto kada se npr. iz Configuration Manager-a obriše neki korisnik, on se obriše iz tabele aspnet_membership i samo jednom iz tabele aspnet_users, što znači da još uvek postoji jedan zapis u toj tabeli o tom korisniku.
To može biti korisniko ukoliko je potrebno čuvati istoriju registranata, ali ako nije, ne gine pisanje metode koja će da čisti "smeće" u tabeli.