Преобразование профиля членства MVC3 из ASP.NET - PullRequest
0 голосов
/ 09 августа 2011

Я конвертирую веб-приложение из asp.net в MVC3 и пытаюсь выяснить, как установить и получить доступ к свойствам профиля, которые были настроены в старом приложении.

Я могу получить доступ к базе данных из старого приложения и могу создавать новых пользователей, используя MVC3, используя

Membership.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretAnswer, true, out createStatus);

Этот новый пользователь помещен в таблицу «USER» базы данных. Мне также нужно хранить дополнительную информацию о пользователе, и я по-прежнему должен использовать старую базу данных, созданную в старом приложении, чтобы при переходе на новое приложение текущие пользователи могли по-прежнему входить в систему и не замечать изменений, кроме некоторых улучшений макета. ,

В старой базе данных также есть таблица с именем "PROFILE", в которой хранятся дополнительные значения, например

UserId, PropertyNames, PropertyValuesString, PropertyValuesBinary, LastUpdatedDate

DB7E1F8E-FB45-49E5-A2AF-C83A371CC22F, PartnerID: S: 0: 2: Имя: S: 2: 4: Фамилия: S: 6: 12: Индексировано: S: 18: 1:, 26MiloMinderbinder3, 0x, 2010-09-29 21: 23: 33,737

Это было создано с помощью MembershipWizard, который недоступен в MVC3. Мне нужно найти способ создания пользователей с MVC3 и при этом добавить соответствующие значения в эту таблицу.

Заранее благодарю за любую помощь, которую вы можете оказать.

Ответы [ 2 ]

0 голосов
/ 09 августа 2011

Шаблон интернет-приложения MVC 3 по умолчанию включает в интерфейс метод для создания пользователя как:

public interface IMembershipService
{
    int MinPasswordLength { get; }

    bool ValidateUser(string userName, string password);
    MembershipCreateStatus CreateUser(string userName, string password, string email);
    bool ChangePassword(string userName, string oldPassword, string newPassword);
}

с его реализацией как:

        public MembershipCreateStatus CreateUser(string userName, string password, string email)
    {
        if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
        if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
        if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email");

        MembershipCreateStatus status;
        _provider.CreateUser(userName, password, email, null, null, true, null, out status);
        return status;
    }

Итак - вам нужно

  1. Добавьте (или измените существующий метод) новые параметры в сигнатуру вашего метода

  2. Добавьте параметры в метод интерфейса (или создайте новыйметод интерфейса)

  3. Измените вызов функции на _provider.CreateUser для передачи ваших параметров

0 голосов
/ 09 августа 2011

Вы можете создать свой собственный класс Membership ... Попробуйте реализовать класс MembershipProvider и зарегистрируйте его в своем Web.Config ...

Это очень гибкий способ обработки членства. Я использую это все время ...

...