Sto utilizzando il provider di appartenenze SQL ASP.NET. Quindi, c'è una tabella aspnet_Users
che contiene i dettagli di ciascuno dei miei utenti. (In realtà, la tabella aspnet_Membership
sembra contenere la maggior parte dei dati effettivi).Utilizzando il provider di appartenenze SQL di ASP.NET, come posso archiviare i miei dati per utente?
Ora desidero memorizzare alcune informazioni per utente nel mio database, quindi ho pensato di creare una nuova tabella con una colonna UserId
(GUID) e una relazione FK su aspnet_Users
. Tuttavia, ho scoperto che non posso accedere facilmente allo UserId
poiché non è esposto tramite l'API di appartenenza. (So che posso accedervi tramite lo ProviderUserKey
, ma sembra che l'API stia estraendo il numero interno UserID
in favore dello UserName
e non voglio andare troppo lontano contro la grana).
Quindi, ho pensato che dovrei invece inserire una colonna LoweredUserName
nella mia tabella e creare una relazione FK a aspnet_Users
usando quello. Bzzzt. Sbagliato ancora, perché mentre c'è un indice univoco in che include il LoweredUserName
, include anche lo ApplicationId
- così, per creare la mia relazione FK, avrei bisogno di avere anche una colonna ApplicationId
nella mia tabella.
All'inizio ho pensato: bene, mi occupo solo di una singola applicazione, quindi aggiungerò semplicemente una colonna e assegnerò un valore predefinito. Poi ho capito che il ApplicationId
è un GUID, quindi sarebbe un problema farlo. Non rigido esattamente, ma fino a quando non lancio il mio DB non posso prevedere quale sarà il GUID.
Mi sento come se mi mancasse qualcosa, o facessi le cose nel modo sbagliato. Cosa devo fare ?
E anche te +1. i blocchi di tip-code attirano l'attenzione. ;-) –
Grazie, ma non penso che i dati che ho bisogno di archiviare si trovino bene in un formato serializzato. Dovrò fare join con vari altri tavoli che ho già nel mio database. Preferirei avere i miei dati utente nelle tabelle su cui posso eseguire in modo efficiente le query. Quindi, mentre posso vedere un utilizzo per l'archiviazione del profilo, non è adatto alla mia situazione. +1 comunque. –