Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Използване на MVC 4 SimpleMembership със съществуващ първи EF модел на база данни

Чисто като отправна точка може да е добра идея да създадете нов шаблон за интернет приложение на проект за уеб приложение ASP.NET MVC 4 (т.е. чрез Файл> Нов проект).

Ако погледнете AccountController , както казва @zms6445, той е украсен с InitializeSimpleMembership атрибут. Можете да намерите изпълнението на този атрибут във файла InitializeSimpleMembershipAttribute.cs в папката Filters в основната директория.

Тук това е липсващата част от пъзела - трябва да свържете съществуващата си база данни, така че да се използва от SimpleMembershipProvider . Това е кодът, от който се нуждаете:

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);
        }
    }
}

Някои неща, които трябва да имате предвид:

  1. CONNECTION_STRING_NAME е запис във вашия web.config ConnectionStrings - НЕ МОЖЕТЕ да използвате моделния низ за връзка тук - SimpleMembershipProvider не разпознава този формат! Трябва да посочите System.Data.SqlClient низ за свързване, напр.

  2. USER_TABLE е таблицата във вашата база данни, която съдържа допълнителна потребителска информация, като собствено име, фамилия и т.н. Това е свързано с автоматично генерираните таблици чрез USER_ID_FIELD.

  3. USER_ID_FIELD обикновено е първичният ключ на вашата таблица Users. Трябва да е от тип int .

  4. USER_ID_NAME е уникално име за потребителя, което може да бъде имейл адрес.

  5. autoCreateTables е зададено на true за да се гарантира, че таблиците, необходими за работа на SimpleMembership, са създадени, ако те все още не съществуват.

Разбира се, този код се задейства само ако посетите страница чрез AccountController , тъй като това е украсено от атрибута. Можете да поставите точка на прекъсване там и да я видите в действие.

Това трябва да ви помогне да започнете - шаблонът за интернет приложение е доста добър шаблон, който да следвате, ако се затрудните.

Надявам се това да помогне.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Joins:Бъдещето на стандарта SQL ANSI (къде срещу join)?

  2. Как извличате само дата от datetime в T-Sql?

  3. Как да обработваме динамични sql параметри

  4. Ефективност на SQL сървъра — Тестване в облака

  5. Избройте кои колони имат индекс на пълен текст в SQL Server 2005