Rent som en referenspunkt kan det vara en bra idé att skapa en ny Internetapplikationsmall för ett ASP.NET MVC 4-webbapplikationsprojekt (dvs via Arkiv> Nytt projekt).
Om du tittar på AccountController , som @zms6445 säger, den är dekorerad med en InitializeSimpleMembership attribut. Du kan hitta implementeringen av detta attribut i filen InitializeSimpleMembershipAttribute.cs i mappen Filters i rotkatalogen.
Här är det här den saknade delen av pusslet - du måste koppla upp din befintliga databas så att den används av SimpleMembershipProvider . Det här är koden du behöver:
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);
}
}
}
Några saker att notera:
-
CONNECTION_STRING_NAMEär en post i din web.config ConnectionStrings - du KAN INTE använda modellanslutningssträngen här -SimpleMembershipProviderkänner inte igen det formatet! Du måste ange enSystem.Data.SqlClientanslutningssträng, t.ex. -
USER_TABLEär tabellen i din databas som innehåller extra användarinformation, såsom förnamn, efternamn etc. Detta är länkat till de autogenererade tabellerna via USER_ID_FIELD. -
USER_ID_FIELDär vanligtvis den primära nyckeln i tabellen Användare. Det måste vara av typenint. -
USER_ID_NAMEär ett unikt namn för användaren, vilket kan vara en e-postadress. -
autoCreateTablesär inställd påtrueför att säkerställa att de tabeller som krävs för att SimpleMembership ska fungera skapas om de inte redan finns.
Naturligtvis aktiveras den här koden bara om du träffar en sida via AccountController , eftersom detta har dekorerats av attributet. Du kan lägga in en brytpunkt där och se den i aktion.
Detta bör få dig igång - mallen för Internetapplikationer är en ganska bra mall att följa om du fastnar.
Hoppas detta hjälper.