Rent som et referencepunkt kan det være en god idé at oprette en ny internetapplikationsskabelon til et ASP.NET MVC 4 webapplikationsprojekt (dvs. via Fil> Nyt projekt).
Hvis du ser på AccountController
, som @zms6445 siger, er den dekoreret med en InitializeSimpleMembership
attribut. Du kan finde implementeringen af denne attribut i filen InitializeSimpleMembershipAttribute.cs i mappen Filtre i rodmappen.
Her er dette den manglende del af puslespillet - du skal tilslutte din eksisterende database, så den bruges af SimpleMembershipProvider
. Dette er den kode du skal bruge:
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);
}
}
}
Nogle ting at bemærke:
-
CONNECTION_STRING_NAME
er en post i din web.config ConnectionStrings - du KAN IKKE bruge modelforbindelsesstrengen her -SimpleMembershipProvider
genkender ikke det format! Du skal angive enSystem.Data.SqlClient
forbindelsesstreng, f.eks. -
USER_TABLE
er tabellen i din database til at indeholde ekstra brugeroplysninger, såsom fornavn, efternavn osv. Dette er knyttet til de autogenererede tabeller via USER_ID_FIELD. -
USER_ID_FIELD
er normalt den primære nøgle i din brugertabel. Det skal være af typenint
. -
USER_ID_NAME
er et unikt navn for brugeren, som kunne være en e-mailadresse. -
autoCreateTables
er indstillet tiltrue
for at sikre, at de tabeller, der kræves for, at SimpleMembership fungerer, oprettes, hvis de ikke allerede eksisterer.
Denne kode bliver selvfølgelig kun udløst, hvis du rammer en side via AccountController
, da dette er blevet dekoreret af attributten. Du kan sætte et brudpunkt derinde og se det i aktion.
Dette burde få dig i gang - Internet-applikationsskabelonen er en ret god skabelon at følge, hvis du går i stå.
Håber dette hjælper.