Ответ 1
Чисто как точка ссылки, может быть хорошей идеей создать новый шаблон интернет-приложения для проекта ASP.NET MVC 4 Web Application (т.е. через File > New Project).
Если вы посмотрите на AccountController
, как говорит @zms6445, он украшен атрибутом InitializeSimpleMembership
. Вы можете найти реализацию этого атрибута в файле InitializeSimpleMembershipAttribute.cs в папке "Фильтры" в корневом каталоге.
Здесь, это недостающая часть головоломки - вам нужно подключить существующую базу данных, чтобы она использовалась 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);
}
}
}
Некоторые примечания:
-
CONNECTION_STRING_NAME
- это запись в вашем web.config ConnectionStrings - вы НЕ МОЖЕТЕ использовать строку подключения модели здесь -SimpleMembershipProvider
не распознает этот формат! Вам нужно указать строку подключенияSystem.Data.SqlClient
, например.< add name= "CONNECTION_STRING_NAME" connectionString = "источник данных = SERVER; начальный каталог = DATABASE; идентификатор пользователя = USER; пароль = PASSWORD;" providerName = "System.Data.SqlClient" / >
-
USER_TABLE
- это таблица в вашей базе данных для хранения дополнительной информации пользователя, такой как имя, фамилия и т.д. Это связано с автогенерированными таблицами через USER_ID_FIELD. -
USER_ID_FIELD
обычно является основным ключом вашей таблицы Users. Он должен иметь типint
. -
USER_ID_NAME
- это уникальное имя для пользователя, которое может быть адресом электронной почты. -
autoCreateTables
устанавливается вtrue
, чтобы гарантировать, что таблицы, необходимые для работы SimpleMembership, создаются, если они еще не существуют.
Конечно, этот код запускается только в том случае, если вы нажимаете страницу через AccountController
, так как это было украшено атрибутом. Вы можете поставить там точку останова и увидеть ее в действии.
Это должно заставить вас начать - шаблон интернет-приложения - довольно хороший шаблон для отслеживания, если вы застряли.
Надеюсь, что это поможет.