我不確定這是否是實現它的最佳方式,但我希望在當前用戶的所有請求期間保持用戶對象處於活動狀態。從閱讀幾個資源,我瞭解到,你應該創建自己的原則,它擁有這一點。但我不想每個認證請求觸發數據庫。有關如何處理此問題的任何建議?緩存數據庫請求是個好主意嗎?在asp.net中設置當前用戶mvc
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
HttpCookie authCookie = Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = FormsAuthentication.Decrypt(authCookie.Value);
User user;
using (HgDataContext hg = new HgDataContext())
{
if (Session["user"] != null)
{
user = (from u in hg.Users where u.EmailAddress == authTicket.Name select u).Single();
} else
{
user = Session["user"] as User;
}
}
var principal = new HgPrincipal(user);
Context.User = principal;
}
}
這個問題似乎還不清楚。你想要保持什麼樣的對象?在任何情況下,你的代碼片段都不能保持任何對象的活着,所以這裏似乎有錯誤。但是,如果不知道你想要達到什麼目的,我什麼都不能說。你能否詳細說明一下? – 2010-04-19 12:07:46
我儘量保持我的用戶對象 – TomHastjarjanto 2010-04-21 19:30:17