2015-04-09 2 views
0

Я разработал веб-сайт в mvc 4, который использует код первой структуры сущности. Я использовал HttpContext.GetOwinContext(). SignIn во время входа на мой сайт.Mvc 4 OwinContext Session exipre во время исполнения

HttpContext.GetOwinContext().SignIn(user, model.RememberMe); 
HttpContext.SetSession(WebConstants.SessionUser, user); 

Когда я захожу в магазин user сеанс. У меня есть один вид Index. В этом представлении я создал шесть-семь меню вкладки. При первом открытии он загружает первую вкладку меню. Когда он загружает, он извлекает некоторые данные из таблиц и выводит их на экран. Поэтому каждый из вкладок содержит некоторые данные. Я создал один basecontroller. В этом контроллере я просматриваю данные сеанса.

Вот мой basecontroller

protected Domain.ClientAgg.User GetUserContext() 
{ 
    return HttpContext.GetSession<SN.Domain.ClientAgg.User>(WebConstants.SessionUser); 
} 
protected string GetUserClientShortname() 
{ 
    return HttpContext.GetSession<SN.Application.DTO.UserContext>(WebConstants.SessionUser).Client.ShortName; 
} 
protected int GetUserClientId() 
{ 
    return HttpContext.GetSession<SN.Application.DTO.UserContext>(WebConstants.SessionUser).Client.Id; 
} 

protected SN.Application.DTO.UserContext GetClientUserContext() 
{ 
    return HttpContext.GetSession<SN.Application.DTO.UserContext>(WebConstants.SessionUser); 
} 
..... 
...... 
...... 

Я использую эти методы, чтобы получить данные из таблицы и показать его на вкладки просмотра. Здесь моя проблема заключается в том, что я постоянно перемещаюсь между этими вкладками session get's expire. Я думаю, что эта проблема возникает, если текущий процесс выполняется, и я нажимаю на другую вкладку, чтобы в то время выполнялся процесс выполнения. Может ли кто-нибудь сказать мне, как я могу решить эту проблему?

ответ

0

Пожалуйста, проверьте настройки истечения срока действия в конфигурации запуска, например:

app.UseCookieAuthentication(new CookieAuthenticationOptions 
     { 
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
      LoginPath = new PathString("/Account/Login"), 
      ExpireTimeSpan = TimeSpan.FromHours(4.0), 
      SlidingExpiration = true 
     }); 

Вы можете прочитать больше о истечении срока на http://www.jamessturtevant.com/posts/ASPNET-Identity-Cookie-Authentication-Timeouts/