MVC 4 Простое членство Пользовательская база данных SQL Server

Вот моя проблема. Я создаю сайт MVC 4 EF из базы данных, которую я создал сам. У меня есть таблица USERS со столбцом UserID, столбцом UserName, столбцом Hash и столбцом Salt. Я хотел бы использовать простое членство и указать его на мою таблицу USERS для обработки входов в систему, смены пароля, регистрации и т. д. Я использую шаблон веб-приложения MVC 4 и не могу подключить его к моей базе данных. Вот моя строка подключения для класса InitializeSimpleMembershipAttribute. Мне сказали, что она должна отличаться от строки подключения, которая создала мои сущности из базы данных.

<add name="DBConnectionString" 
     connectionString="data source=SERVERADDRESS;initial catalog=DATABASENAME;user id=USERID;password=PASSWORD;" 
     providerName="System.Data.SqlClient" />

Единственное изменение, которое я внес в шаблон InitializeSimpleMembershipAttribute.cs, заключается в том, что я заменил следующую строку данными моей таблицы:

WebSecurity.InitializeDatabaseConnection("DBConnectionString", "USERS", "UserID", "UserName", autoCreateTables: true);

Я не уверен, что я делаю неправильно. Я читал, что все, что вам нужно сделать, это указать для подключения к базе данных строку подключения, таблицу для пользователей, столбец идентификатора пользователя и столбец имени пользователя. Должна ли моя база данных учетных записей пользователей быть точно такой же, как в шаблоне? Это первый раз, когда я сделал базу данных для сайта MVC.


person user3396654    schedule 08.03.2014    source источник


Ответы (1)


1.) Убедитесь, что следующие строки в вашем файле web.config.

<membership defaultProvider="SimpleMembershipProvider">
  <providers>
    <clear />
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
  </providers>
</membership>
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
  <providers>
    <clear />
    <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData" />
  </providers>
</roleManager>

2.) Добавьте следующие коды в событие Application_Start() в файле global.asax.cs.

Database.SetInitializer<UsersContext>(null);

        if (!WebSecurity.Initialized)
        {
            WebSecurity.InitializeDatabaseConnection("DBConnectionString", "Users", "UserId", "UserName", autoCreateTables: true);
        }

3.), а затем решение Clean and Run...

person ramazandonmez    schedule 11.03.2014