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_NAMEjest wpisem w pliku web.config ConnectionStrings — NIE MOŻNA tutaj użyć parametrów połączenia modelu —SimpleMembershipProvidernie rozpoznaje tego formatu! Musisz określićSystem.Data.SqlClientciąg połączenia, np. -
USER_TABLEto 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_FIELDjest zwykle kluczem podstawowym tabeli Użytkownicy. Musi być typuint. -
USER_ID_NAMEto unikalna nazwa użytkownika, która może być adresem e-mail. -
autoCreateTablesjest ustawiona natrueaby 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.