Puur als referentiepunt kan het een goed idee zijn om een nieuwe internettoepassingssjabloon van een ASP.NET MVC 4-webtoepassingsproject te maken (d.w.z. via Bestand> Nieuw project).
Als je kijkt naar de AccountController
, zoals @zms6445 zegt, is het versierd met een InitializeSimpleMembership
attribuut. U kunt de implementatie van dit kenmerk vinden in het bestand InitializeSimpleMembershipAttribute.cs in de map Filters in de hoofdmap.
Hier is dit het ontbrekende deel van de puzzel - je moet je bestaande database aansluiten zodat deze wordt gebruikt door de SimpleMembershipProvider
. Dit is de code die je nodig hebt:
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);
}
}
}
Enkele dingen om op te merken:
-
CONNECTION_STRING_NAME
is een item in uw web.config ConnectionStrings - u kunt hier NIET de modelverbindingsreeks gebruiken - deSimpleMembershipProvider
herkent dat formaat niet! U moet eenSystem.Data.SqlClient
. opgeven verbindingsreeks, b.v. -
USER_TABLE
is de tabel in uw database om extra gebruikersinformatie te bevatten, zoals voornaam, achternaam etc. Deze is gekoppeld aan de automatisch gegenereerde tabellen via het USER_ID_FIELD. -
USER_ID_FIELD
is meestal de primaire sleutel van uw tabel Gebruikers. Het moet van het typeint
. zijn . -
USER_ID_NAME
is een unieke naam voor de gebruiker, wat een e-mailadres kan zijn. -
autoCreateTables
is ingesteld optrue
om ervoor te zorgen dat de tabellen die nodig zijn om SimpleMembership te laten werken, worden gemaakt als ze nog niet bestaan.
Deze code wordt natuurlijk alleen geactiveerd als je een pagina bereikt via de AccountController
, aangezien dit is versierd met het attribuut. Je zou daar een breekpunt kunnen plaatsen en het in actie zien.
Dit zou u op weg moeten helpen - de internettoepassingssjabloon is een redelijk goede sjabloon om te volgen als u vastloopt.
Ik hoop dat dit helpt.