이것이 최선의 방법인지 확실하지 않지만 현재 사용자의 모든 요청 중에 사용자 개체를 활성 상태로 유지하려고합니다. 몇 가지 자료를 읽음으로써 나는 이것을 소유하고있는 당신 자신의 IPrinciple을 만들어야한다는 것을 배웠습니다. 하지만 모든 인증 요청마다 데이터베이스를 실행하고 싶지는 않습니다. 이 처리 방법에 대한 권장 사항은 무엇입니까? db 요청 캐싱이 좋은 생각입니까?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;
}
}
질문은 나에게 불확실한 것처럼 보입니다. 정확히 어떤 물건을 살리고 싶습니까? 어쨌든 코드 조각은 어떤 객체도 살아 있도록 관리하지 않으므로 거기에 실수가있는 것 같습니다. 그러나 당신이 달성하고자하는 것이 정확히 무엇인지 모른 채, 나는 다른 것을 말할 수 없습니다. 정교하게 제발 주시겠습니까? –
내 사용자 객체를 계속 유지하려고합니다. – TomHastjarjanto