Puramente come punto di riferimento, potrebbe essere una buona idea creare un nuovo modello di applicazione Internet di un progetto di applicazione Web ASP.NET MVC 4 (ad esempio tramite File> Nuovo progetto).
Se guardi il AccountController
, come dice @zms6445, è decorato con un InitializeSimpleMembership
attributo. Puoi trovare l'implementazione di questo attributo nel file InitializeSimpleMembershipAttribute.cs nella cartella Filtri all'interno della directory principale.
Qui, questa è la parte mancante del puzzle:devi collegare il tuo database esistente in modo che venga utilizzato da SimpleMembershipProvider
. Questo è il codice che ti serve:
private class SimpleMembershipInitializer
{
public SimpleMembershipInitializer()
{
try
{
if (!WebSecurity.Initialized)
{
WebSecurity.InitializeDatabaseConnection("CONNECTION_STRING_NAME", "USER_TABLE", "USER_ID_FIELD", "USER_NAME_FIELD", autoCreateTables: true);
}
}
catch (Exception ex)
{
throw new InvalidOperationException("Something is wrong", ex);
}
}
}
Alcune cose da notare:
-
CONNECTION_STRING_NAME
è una voce nel tuo Web.config ConnectionStrings - NON PUOI utilizzare la stringa di connessione del modello qui - ilSimpleMembershipProvider
non riconosce quel formato! Devi specificare unSystem.Data.SqlClient
stringa di connessione, ad es. -
USER_TABLE
è la tabella nel tuo database per contenere informazioni aggiuntive sull'utente, come nome, cognome, ecc. Questa è collegata alle tabelle generate automaticamente tramite USER_ID_FIELD. -
USER_ID_FIELD
è solitamente la chiave primaria della tabella Utenti. Deve essere di tipoint
. -
USER_ID_NAME
è un nome univoco per l'utente, che potrebbe essere un indirizzo e-mail. -
autoCreateTables
è impostato sutrue
per garantire che le tabelle necessarie per il funzionamento di SimpleMembership vengano create se non esistono già.
Ovviamente, questo codice viene attivato solo se visiti una pagina tramite AccountController
, poiché questo è stato decorato dall'attributo. Potresti inserire un punto di interruzione e vederlo in azione.
Questo dovrebbe iniziare:il modello di applicazione Internet è un modello abbastanza buono da seguire se rimani bloccato.
Spero che questo aiuti.