Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将表单身份验证用户与模型关联_C#_Asp.net Mvc_Asp.net Mvc 3_Authentication - Fatal编程技术网

C# 将表单身份验证用户与模型关联

C# 将表单身份验证用户与模型关联,c#,asp.net-mvc,asp.net-mvc-3,authentication,C#,Asp.net Mvc,Asp.net Mvc 3,Authentication,我正在为.NETMVC3项目使用表单身份验证。我也在为此使用EntityFramework。用户处理非常简单。尽管问题是,如何将用户与模型关联 假设我有一个简单的post模型: public class Post { public int ID { get; set; } public string Title { get; set; } public string Text { get; set; } public DateTime Updated { get;

我正在为.NETMVC3项目使用表单身份验证。我也在为此使用EntityFramework。用户处理非常简单。尽管问题是,如何将用户与模型关联

假设我有一个简单的post模型:

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; }
}

注意作者字段。如何将用户链接到它?

我正在使用nHydrate和EF进行MVC3项目。在努力让MembershipUser和MembershipProvider使用nHydrate框架之后,我突然意识到我真的没有特别需要使用ASP.NET成员资格。。。东西最后,在我编写的数据层中只包含我自己的身份验证方法要简单得多


所以,FWIW,也许值得你问问自己为什么需要使用内置的会员资格。。。东西如果您没有绑定到遗留系统中,您可能会发现它并没有为您购买那么多。

我假设您的
Post
对象是一个视图模型

创建一个展平的
User
对象,该对象包含视图所需的用户信息。如果您正在创建一个post视图,如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中进行,您的实际业务逻辑应该在控制器中进行