webForumDet fria alternativet

Membership i ASP.NET2.0

.NET

6 svar · 574 visningar · startad av natas

Medlem sedan juli 200568 inlägg
Frågan#1

Hej.

Jag testar Membership databasen("aspnetdb.mdf") i ASP.NET2.0.
Jag tänkte adda lite tabeller i den autogenererade databasen.
I en av de autogenerade tabellen "aspnet_Users" är UserID primärnyckel av datatyp GUID.
Allt bra så långt. Jag ska nu lägga till en tabell i denna databas kallad "orders".
Och i "orders" tabellen lägger jag såklart till en kolumn kallad "UserID" som är en foreign key till
"aspnet_Users" tabellens primärnyckel("UserID"). Helt korrekt 3:e forms normalisering.
Allt gött so far. Men det är nu man stöter på problem. När man senare ska använda
denna "UserID" i sin applikation finns det väldigt dåligt stöd för detta.
Ponera nu att jag loggar in med loginkontrollerna och jag är inloggad.
Och jag vill visa alla mina ordrar. Då använder jag såklart mitt "UserID" för att
göra en SELECT WHERE clause på "orders" tabellen.
Så jag drar då ut en SqlDataSource för att göra detta och kopplar den till "orders" tabellen
och trycker sedan på "WHERE" för att selektera enligt mitt "UserID".
Då finns det bara stöd för:

None
Control
Cookie
Form
Profile
QueryString
Session

MEN INGET FÖR DEN INLOGGADES USERID!!!!.
Enda sättet att komma åt den inloggades(eller den anonomous) "UserID"
är att använda "Membership.GetUser().ProviderUserKey" i källkoden.
Men det finns inget stöd i vare sig SqlDataSource eller ObjectDataSource
för att komma åt "UserID". Varför har dom gjort på detta sättet?.
Och vad som gör det värre är också att man behöver inte ens
vara inloggad för att ett "UserID" ska skapas i "aspnet_Users" tabellen
eftersom den tillåter att anonomous users kan spara sina "Profiles".
Så därför blir att komma åt "UserID" ännu viktigare.
Är man inloggad så ska man identifiera sig med sitt "UserID" eftersom det
är primärnyckeln när usern skapades i tabellen "aspnet_Users". Och det är ju denna "UserID" man använder
när man ska lägga till ordrar och grejer i foreign key tabeller.
Jag kan inte fatta hur dom tänkt egentligen?. Nån som har en fet lösning i bakfickan?

Medlem sedan okt. 2004392 inlägg
#2

Testa med Profile i listan...

Medlem sedan juli 200568 inlägg
#3

Men finns användarens UserID i profile "by default" ?

Medlem sedan okt. 2004392 inlägg
#4

Membership är kopplad till Profile.
Leta i dem metoderna eller egenskaperna i Profile.

Jag vet i alla fall att Username finns med som default... id måste säkert finnas....

Testa att skriva Profile.ToString() i en sida för att se ifall den skriver ut ID

Medlem sedan juli 200568 inlägg
#5

Jag hittar inget UserID i Profile :/

Medlem sedan juli 200568 inlägg
#6

Hallo kan ni andra vakna lite också? :D
detta är ju en rätt väsentlig fråga som gäller de flesta av oss. Hur ska man kunna bygga ut aspnet.db om man inte har enkel åtkomst till UserID överallt?

Medlem sedan jan. 200568 inlägg
#7

En dum-fråga!!

För en som inte är så värst insatt i asp.net 2.0.... Du pratar om en automatgenerad databas.. vad är det för databas? Då måste man ha sql server 2005 installerad eller? Eller hur funkar den?

254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)