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();