Альтернативное управление пользователями в ASP.NET MVC - PullRequest
9 голосов
/ 23 мая 2009

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

1) Можно ли отредактировать класс, который уже используется для хранения необходимой мне информации?

2) Если я сверну свое собственное, как я могу сохранить такие вещи, как Аутентификация, которая делает вещи такими приятными при попытке заблокировать некоторые представления с помощью метода User.IsAuthenticated?

Другой альтернативой, которую я рассмотрел, является использование класса User, предоставленного как есть, и вместо этого помещение другой информации в отдельную таблицу с идентификатором пользователя guid в качестве внешнего ключа.

Предложения

Ответы [ 3 ]

11 голосов
/ 23 мая 2009

Профили являются одним из вариантов, как говорит @Burt, и предлагают большую гибкость.

У меня была похожая потребность отслеживать информацию о Сотрудниках, но я решил развернуть свой собственный класс Сотрудников и создать связь со стандартным Пользователем. Мне очень нравится, как это работает, поскольку я могу отделить бизнес-логику любого сотрудника от класса пользователя системы членства.

Поскольку не каждый Пользователь собирался связываться с сотрудником, в моем случае это имело больше смысла. Возможно, не для вас, но это альтернатива.

Итак, у меня есть что-то вроде:

public class Employee
{
    public Employee(string name) : this()
    {
        Name = name;
    }

    public virtual string Name { get; set; }
    public virtual string Title { get; set; }
    public virtual decimal Salary { get; set; }
    public virtual decimal Hourly { get; set; }
    public virtual decimal PerDiem { get; set; }
    public virtual string StreetAddress { get; set; }
    public virtual Guid UserId { get; set; }
    public virtual MembershipUser User {
        get
        {
            // note that I don't have a test for null in here, 
            // but should in a real case.
            return Membership.GetUser(UserId);
        }
    }
}
6 голосов
/ 15 августа 2009

См. Членский стартовый пакет ASP.Net MVC . Он предоставляет контроллеры, модели и представления Asp.Net MVC, необходимые для администрирования пользователей и ролей. Для вас это сократит расстояние пополам.

Из коробки стартовый набор предоставляет следующие функции:

  • Список пользователей
  • Список ролей
  • Пользователь Информация об учетной записи
  • Изменить адрес электронной почты
  • Изменить роли пользователя
3 голосов
/ 23 мая 2009

Просмотрите профили, которые являются частью функциональности членства, предоставляемой MS. Они расширяемые и довольно гибкие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...