Привязать пользователя для проверки подлинности форм к модели - PullRequest
1 голос
/ 31 марта 2011

Я использую аутентификацию по формам для проекта .NET MVC3.Я также использую EntityFramework для этого.Пользовательская обработка довольно проста.Хотя вопрос в том, как связать пользователей с моделями?

Скажем, у меня есть простая модель поста:

public class Post
{
    public int ID { get; set; }
    public string Title { get; set; }
    public string Text { get; set; }
    public DateTime Updated { get; set; }
    //public MembershipUser Author { get; set; }
}

Обратите внимание на поле Автор.Как связать пользователя с ним?

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Я предполагаю, что ваш Post объект является моделью представления.

Создайте плоский User объект, который содержит информацию, необходимую вам для просмотра. Если бы вы создавали пост-просмотр, например, в stackoverflow, это могло бы выглядеть так:

 public class User{
     public string DisplayName {get;set;}
     public string AvatarUrl{get;set;}
     public int Reputation {get;set;}
     public int GoldBadges{get;set;
     public int SilverBadges{get;set;
     public int BronzeBadges{get;set;
 } 

Тогда вы просто добавите это свойство в модель представления.

В ситуациях, когда вы выполняете аутентификацию, например, вход в систему, вам, вероятно, нужна отдельная модель ввода, например:

 public class LogonModel{
      public string Username{get;set;}
      public string Password{get;set;}
      public bool RememberMe{get;set;}
 }

Вся привязка из входных моделей к вашему MembershipUser может происходить в ModelBinder, а ваша фактическая бизнес-логика должна происходить в вашем контроллере.

1 голос
/ 03 апреля 2011

Я использую nHydrate и EF для проекта MVC3. После попыток заставить MembershipUser и MembershipProvider работать с фреймворком nHydrate, я внезапно осознал, что у меня действительно нет особой необходимости использовать ASP.NET Membership ... материал. В конце концов, было намного проще просто включить мои собственные методы аутентификации в слой данных, который я все равно писал.

Итак, FWIW, возможно, стоит спросить себя, зачем вам нужно использовать встроенное членство…. Если вы не привязаны к унаследованной системе, вы можете обнаружить, что она не так уж много вас покупает.

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