Czysto jako punkt odniesienia, dobrym pomysłem może być utworzenie nowego szablonu aplikacji internetowej projektu aplikacji sieci Web ASP.NET MVC 4 (tj. przez Plik> Nowy projekt).
Jeśli spojrzysz na AccountController
, jak mówi @zms6445, jest ozdobiony InitializeSimpleMembership
atrybut. Implementację tego atrybutu można znaleźć w pliku InitializeSimpleMembershipAttribute.cs w folderze Filters w katalogu głównym.
Tutaj jest to brakująca część układanki — musisz podłączyć istniejącą bazę danych, aby była używana przez SimpleMembershipProvider
. Oto kod, którego potrzebujesz:
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);
}
}
}
Kilka rzeczy do zapamiętania:
-
CONNECTION_STRING_NAME
jest wpisem w pliku web.config ConnectionStrings — NIE MOŻNA tutaj użyć parametrów połączenia modelu —SimpleMembershipProvider
nie rozpoznaje tego formatu! Musisz określićSystem.Data.SqlClient
ciąg połączenia, np. -
USER_TABLE
to tabela w Twojej bazie danych do przechowywania dodatkowych informacji o użytkowniku, takich jak imię, nazwisko itp. Jest ona połączona z automatycznie wygenerowanymi tabelami za pośrednictwem pola USER_ID_FIELD. -
USER_ID_FIELD
jest zwykle kluczem podstawowym tabeli Użytkownicy. Musi być typuint
. -
USER_ID_NAME
to unikalna nazwa użytkownika, która może być adresem e-mail. -
autoCreateTables
jest ustawiona natrue
aby upewnić się, że tabele wymagane do działania SimpleMembership są tworzone, jeśli jeszcze nie istnieją.
Oczywiście ten kod zostanie uruchomiony tylko wtedy, gdy trafisz na stronę za pomocą AccountController
, ponieważ zostało to ozdobione atrybutem. Możesz umieścić tam punkt przerwania i zobaczyć go w akcji.
To powinno Ci zacząć – szablon aplikacji internetowej jest całkiem dobrym szablonem do naśladowania, jeśli utkniesz.
Mam nadzieję, że to pomoże.