2013-07-14 29 views
19

Attualmente sto costruendo un nuovo progetto ASP.NET MVC 5 che voglio rilasciare verso settembre. Ho bisogno di scegliere un sistema di appartenenza, ma al momento sono abbastanza confuso su quale direzione dovrei prendere. L'attuale SimpleMembership funziona bene, ma apparentemente non sarà compatibile con la prossima Identità ASP.NET. L'identità ASP.NET d'altra parte è assolutamente nuova con zero documentazione e può cambiare in qualsiasi momento. Infine sembra che qui vengano utilizzati gli ID basati su stringhe, il che sembra un sovraccarico molto superfluo rispetto agli ID basati su numeri interi, supportati da SimpleMembership. Esiste un modo valido e a prova di futuro che posso scegliere?Identità ASP.NET

+0

I guai formattati per le stringhe sono usati al posto dei guids effettivi per consentire lo scambio del meccanismo di persistenza più facilmente, ad esempio se volevi usare una soluzione nosql che non offriva supporto per GUID. La colonna id è indicizzata e sebbene una colonna int indexed funzioni meglio, la differenza è trascurabile per la maggior parte delle applicazioni. – joelmdev

+0

Vedere http://stackoverflow.com/questions/19238621/why-do-the-asp-net-identity-interfaces-use-strings-for-primary-and-foreign-keys/19283502#19283502 per il motivo che i GUID sono Usato. – RickAndMSFT

risposta

10

Vorrei sconsigliare l'utilizzo di SimpleMembership. È comunque possibile utilizzare gli ID int nel database, si avrebbe solo bisogno di ToString() l'ID quando collegato il soggetto banca dati, vale a dire:

public class MyUser : IUser { 
    [Key] 
    int UserID { get; set; } 

    string IUser.Id { get { return UserId.ToString(); } } 
} 
8

A mio parere se si avvia il progetto con asp.net mvc 5 è necessario utilizzare il nuovo sistema di appartenenza poiché è ben integrato con gli standard http://owin.org/.

+1

Inoltre stiamo aggiungendo altri tutorial e su SO c'è molto supporto. – RickAndMSFT

1

Vorrei utilizzare la versione più recente di identità o di costruire il proprio account sistema completamente. L'identità di ASP.NET ora usa un GUID (NVARCHAR (128) - nel db) per l'ID, tuttavia puoi ancora usare un int se vuoi. So che le persone usano ancora l'identità 1.0 senza problemi, credo che abbiano usato int per l'ID.

In entrambi i casi un ID non dovrebbe mai scontrarsi se è un int o un guid. come detto sopra, puoi solo Id.ToString();

Qualsiasi percorso tu abbia, non penso che farà molta differenza.

0

Credo che ASP.NET sia un buon framework e fornisca quasi tutte le funzionalità richieste per un'applicazione. Fornisce anche la possibilità di scegliere il tipo di colonna Id secondo la vostra scelta. Ho creato un wrapper di base sull'identità ASP.NET e ho pubblicato un nuget, in modo che fosse facilmente utilizzabile. Puoi dare un'occhiata al codice github

Problemi correlati