Čistě jako referenční bod může být dobrý nápad vytvořit novou šablonu internetové aplikace projektu webové aplikace ASP.NET MVC 4 (tj. přes Soubor> Nový projekt).
Pokud se podíváte na AccountController
, jak říká @zms6445, je ozdoben InitializeSimpleMembership
atribut. Implementaci tohoto atributu naleznete v souboru InitializeSimpleMembershipAttribute.cs ve složce Filtry v kořenovém adresáři.
Zde je chybějící část skládačky – musíte připojit svou stávající databázi, aby ji používal SimpleMembershipProvider
. Toto je kód, který potřebujete:
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ěkolik poznámek:
-
CONNECTION_STRING_NAME
je položka ve vašem web.config ConnectionStrings – zde NEMŮŽETE použít model připojení –SimpleMembershipProvider
nezná tento formát! Musíte zadatSystem.Data.SqlClient
spojovací řetězec, např. -
USER_TABLE
je tabulka ve vaší databázi, která obsahuje další informace o uživateli, jako je jméno, příjmení atd. Tato tabulka je propojena s automaticky generovanými tabulkami prostřednictvím pole USER_ID_FIELD. -
USER_ID_FIELD
je obvykle primární klíč vaší tabulky Uživatelé. Musí být typuint
. -
USER_ID_NAME
je jedinečné jméno pro uživatele, což může být e-mailová adresa. -
autoCreateTables
je nastaveno natrue
aby bylo zajištěno, že tabulky potřebné pro fungování SimpleMembership budou vytvořeny, pokud ještě neexistují.
Tento kód se samozřejmě spustí pouze v případě, že se dostanete na stránku prostřednictvím AccountController
, protože toto bylo zdobeno přívlastkem. Mohli byste tam vložit bod přerušení a vidět to v akci.
Tohle by vám mělo začít – šablona Internet Application je docela dobrá šablona, kterou byste měli následovat, pokud uvíznete.
Doufám, že to pomůže.