Nie jestem pewien, czy jest to najlepszy sposób to zrobić, ale chcę zachować obiekt użytkownika przy wszystkich żądań bieżącego użytkownika. Odczytując kilka zasobów dowiedziałem się, że powinieneś stworzyć swoją własną Klienę, która to posiada. Ale nie chcę uruchamiać bazy danych dla każdego żądania uwierzytelnienia. Wszelkie zalecenia dotyczące sposobu radzenia sobie z tym? Czy buforowanie żądania db jest dobrym pomysłem?Ustaw bieżącego użytkownika w 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;
}
}
Pytanie wydaje mi się niejasne. Jaki dokładnie obiekt chcesz zachować przy życiu? W każdym razie twój fragment kodu nie jest w stanie utrzymać żadnych obiektów przy życiu, więc wydaje się, że jest tam błąd. Ale nie wiedząc, co dokładnie chcesz osiągnąć, nie mogę powiedzieć nic więcej. Czy mógłbyś rozwinąć? –
Próbuję zachować mój obiekt użytkownika wokół – TomHastjarjanto