User.Identity當然可以在控制器中訪問。但我不想讓每個控制器都有複製的方法來獲取用戶的常用屬性。User.Identity和相關屬性 - 我如何使用可以由我的任何控制器調用的單一方法處理它們?
public class myClass
{
public void myMethod()
{ //assume user is authenticated for the purposes of this question
var currentUserId = User.Identity.GetUserId();
var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var currentUser = manager.FindById(currentUserId);
ViewBag.UserID = currentUser.Id;
ViewBag.favoriteColor = currentUser.favoriteColor;
}
}
什麼是這樣做的好方法,以便它可以被我的所有控制器訪問?我會把它放在哪裏,我怎麼稱呼它,以及我需要通過哪種方式來通過它才能使其工作,以最佳實踐的方式進行工作?
我最初提出這個問題,包括在標題中,關於在由我的不同控制器調用的單個方法中設置ViewBag變量。今天我的研究表明,ViewBag變量不能從創建它們的控制器類訪問。我最初的帖子的實際意圖是能夠訪問來自我的不同控制器的單個類的User.Identity信息。 – Reid