Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Korzystanie z MVC 4 SimpleMembership z istniejącym modelem EF opartym na bazie danych

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:

  1. 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.

  2. 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.

  3. USER_ID_FIELD jest zwykle kluczem podstawowym tabeli Użytkownicy. Musi być typu int .

  4. USER_ID_NAME to unikalna nazwa użytkownika, która może być adresem e-mail.

  5. autoCreateTables jest ustawiona na true 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bazy danych systemu SQL Server — konserwacja Tempdb

  2. Uzyskać listę procedur składowanych utworzonych i/lub zmodyfikowanych w określonym dniu?

  3. Klucz obcy do klucza innego niż podstawowy

  4. grupowanie i przełączanie kolumn i wierszy

  5. Wszelkie inne rozwiązania dla SQL Zestaw nośników zawiera 2 rodziny nośników, ale tylko jedna jest dostępna. Wszyscy członkowie muszą być zapewnieni. błąd?