1

我是MVC的新手,对我来说很裸露。 MVC 5带有自己的内置身份验证,这非常棒,而且正是我所需要的。我不想重新发明轮子,所以我会使用它。如果我需要更多信息给用户,我还看到了很多关于如何扩展的帖子和信息。MVC 5内置自定义类的身份验证。 Code First

我的问题是,我需要有另一个模型,链接到登录的用户。想象一下,有一个论坛登录的用户有'职位'。我需要一个'Post'类,它具有与ASP.NET完成所有工作创建的用户的关系。

我试图做这样的事情:

public virtual ApplicationUser CreatedBy { get; set; } 

但是没有工作,我不知道够不够弄清楚我如何得到它的工作。网上的任何教程或示例都着重于MVC的身份验证元素,或者是实体框架,您可以在其中创建自己的dbContext并开始在其中执行所有操作。我如何链接这两个?

回答

1

要参考从另一个类添加到您的applicationuser你可以尝试这样的事:

public class Post{ 
    public int Id { get; set; 
    public string Name { get; set; } 

    public virtual ApplicationUser CreatedBy { get; set; } 
} 

而在你的控制器创建操作(或在其中创建新的岗位): (添加的代码行为了清晰起见,用户管理者等)

var post = new Post { Name = "My new post" } 
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())); 
var currenApplicationUser = userManager.FindById(User.Identity.GetUserId()); 
var currentUser = db.Users.Find(currenApplicationUser.Id); 
post.CreatedBy = currentUser; 
db.Posts.Add(post); 
db.SaveChanges();