Исключительно в качестве ориентира может быть хорошей идеей создать новый шаблон интернет-приложения проекта веб-приложения 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);
}
}
}
Некоторые вещи, которые следует отметить:
CONNECTION_STRING_NAME
— это запись в ваших строках подключения web.config — вы НЕ МОЖЕТЕ использовать здесь строку подключения модели — SimpleMembershipProvider
не распознает этот формат! Вам нужно указать строку подключения System.Data.SqlClient
, например.
‹add name="CONNECTION_STRING_NAME" connectionString="источник данных=СЕРВЕР;начальный каталог=БАЗА ДАННЫХ;идентификатор пользователя=ПОЛЬЗОВАТЕЛЬ;пароль=ПАРОЛЬ;" providerName="System.Data.SqlClient" /›
USER_TABLE
— это таблица в вашей базе данных для хранения дополнительной информации о пользователе, такой как имя, фамилия и т. д. Она связана с автоматически сгенерированными таблицами через поле USER_ID_FIELD.
USER_ID_FIELD
обычно является первичным ключом вашей таблицы Users. Он должен быть типа int
.
USER_ID_NAME
— это уникальное имя пользователя, которое может быть адресом электронной почты.
autoCreateTables
имеет значение true
, чтобы обеспечить создание таблиц, необходимых для работы SimpleMembership, если они еще не существуют.
Конечно, этот код срабатывает только в том случае, если вы переходите на страницу через AccountController
, так как она была украшена атрибутом. Вы можете поставить точку останова и увидеть ее в действии.
Это должно помочь вам начать работу — шаблон Интернет-приложения — довольно хороший шаблон, которому можно следовать, если вы застряли.
Надеюсь это поможет.
person
Alistair Findlay
schedule
05.03.2013