2013-07-03 6 views
0

На моем сайтеSession потерял после входа

  1. заполнения формы перед входом сохранения данных в сеансе
  2. Войти с помощью Linkedin ID
  3. после Войти на Pageload принимая данные из сессии затем вставить в базу данных SQL

Моя проблема в том, что я получаю сессию, а иногда я не получаю сессию (сеанс утерян) (в основном, когда 3-4 человека тестируют одновременно ... 2-3 получают сеанс и 1-2 не получение сеанса)

Может ли кто-нибудь сказать мне, в чем проблема? Как я могу решить эту проблему?

Любой другой способ выполнить эту задачу?

Завершение сеанса перед входом в систему Сессия ["sesObjFundRaiseSeek"] = objFundRaiseSeek;

Получение после авторизации

if (Session["sesObjSellSeekBL"] != null) 
{ 
    clsSellSeekBL ObjSellSeekBL = (clsSellSeekBL)Session["sesObjSellSeekBL"]; 
} 
+0

Любой код, который вы можете представить? Пожалуйста, будьте более конкретными! – Marcus

+2

Мы действительно не можем вам помочь, если вы не укажете нам свой код. – Archer

+0

Затрудняюсь ответить с помощью небольшой информации, вы перезагружаете переменную сеанса в любом месте или устанавливаете ее равной нулю? Может быть, вы создаете экземпляр объекта где-то, что вы ввели в сеанс? Мне кажется, что вы устанавливаете значение сеанса более одного раза. – Marcus

ответ

0

ли проблема с вашей сессии таймаут после очень короткого периода времени? Вы можете ввести тайм-аут сеанса по умолчанию в файле web.config. Это делается прямо в system.web. Ниже приведен пример, где 480 это количество минут:

<sessionState timeout="480"></sessionState> 

Для получения дополнительной информации: http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.71).aspx

Альтернативным решением является использование Cookies. Я бы рекомендовал использовать Cookies для хранения информации о состоянии пользователя. Поскольку Cookies хранятся на компьютере пользователя, то проще в настройке:

Я установлен срок годности до 100000 дней спустя в примере ниже:

HttpCookie myCookie = new HttpCookie("sesObjSellSeekBL"); 
myCookie.Value = Convert.ToString(user_id); //store the user id here at the very least 
myCookie.Expires = DateTime.Now.AddDays(100000d); 
Response.Cookies.Add(myCookie); 

Вот как вы проверяете Cookie:

if (Request.Cookies["sesObjSellSeekBL"] != null) 

Вот как зарегистрировать пользователя из:

HttpCookie myCookie = new HttpCookie("sesObjSellSeekBL"); 
myCookie.Expires = DateTime.Now.AddDays(-1d); 
Response.Cookies.Add(myCookie); 
+0

Спасибо, но я уже установил таймаут 60 минут в web.config –

+0

Какую версию IIS вы используете? Вы настроили свойство Idle Timeout-out? – rgrano

+0

IIS 6.0 и я не настроили свойство Idle Timeout-out? –

Смежные вопросы