2010-03-10 3 views
5

devo tabella locale per gli account utenteIntegrazione OpenID nel sito web senza l'utilizzo di database locale di registrazione utente

UserID (nvarchar), password, e-mail, i ruoli LastName ecc

Ora UserID viene utilizzato in ogni tabelle figlio . Desidero abilitare la registrazione OPENID al momento nel mio sito e integrerò la funzionalità di registrazione utente locale in un secondo momento. Dovrei inserire identificatore di reclamo openid nell'account utente locale (colonna USERID) o creare una tabella separata per openid. In caso di creazione di una tabella separata, non ho dati per userid (non ho abilitato la registrazione dell'utente locale).

gentilmente guida.

Grazie.

risposta

5

Se si mette la colonna ClaimedIdentifier nella vostra tabella di utenti, è possibile effettuare UserID una colonna "int IDENTITY" in modo che il server SQL genera automaticamente il valore dato che tutti hai bisogno è un numero unico lì. È inoltre possibile rilasciare la colonna della password fino a quando non si aggiunge la registrazione dell'utente (se si sceglie di farlo).

Ma se si crea una tabellacon una chiave esterna nella tabella Users, è possibile consentire agli utenti di associare più OpenID al proprio account, il che consente di evitare problemi se il provider è temporaneamente disattivato o il loro account con il loro Provider sospeso, ecc.

StackOverflow, ad esempio, prende la via di mezzo, consentendo all'utente di associare al massimo due identificatori richiesti con ciascun account.

0

Put OpenID identificatore in un'altra colonna sul tavolo dell'utente

+0

e che dire di USERID, dovrei generarlo programmaticamente. User ID è la chiave di destinazione nelle altre tabelle. –

+0

Certo, è solo un ID, non è importante per nessuno o per OpenID – TFD