Apenas como um ponto de referência, pode ser uma boa ideia criar um novo modelo de aplicativo de Internet de um projeto de aplicativo da Web ASP.NET MVC 4 (ou seja, via Arquivo> Novo projeto).
Se você olhar para o
AccountController
, como diz @zms6445, ele é decorado com um InitializeSimpleMembership
atributo. Você pode encontrar a implementação desse atributo no arquivo InitializeSimpleMembershipAttribute.cs na pasta Filtros no diretório raiz. Aqui, esta é a parte que falta do quebra-cabeça - você precisa conectar seu banco de dados existente para que ele seja usado pelo
SimpleMembershipProvider
. Este é o código que você precisa: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);
}
}
}
Algumas coisas a serem observadas:
-
CONNECTION_STRING_NAME
é uma entrada em seu web.config ConnectionStrings - você NÃO PODE usar a string de conexão do modelo aqui - oSimpleMembershipProvider
não reconhece esse formato! Você precisa especificar umSystem.Data.SqlClient
cadeia de conexão, por exemplo
-
USER_TABLE
é a tabela em seu banco de dados para armazenar informações extras do usuário, como nome, sobrenome etc. Ela está vinculada às tabelas geradas automaticamente por meio do USER_ID_FIELD.
-
USER_ID_FIELD
geralmente é a chave primária da sua tabela Users. Deve ser do tipoint
.
-
USER_ID_NAME
é um nome exclusivo para o usuário, que pode ser um endereço de e-mail.
-
autoCreateTables
está definido comotrue
para garantir que as tabelas necessárias para que o SimpleMembership funcione sejam criadas, caso ainda não existam.
Claro, esse código só é acionado se você acessar uma página por meio do
AccountController
, já que este foi decorado pelo atributo. Você pode colocar um ponto de interrupção lá e vê-lo em ação. Isso deve começar - o modelo de aplicativo da Internet é um modelo muito bom para seguir se você ficar preso.
Espero que isto ajude.