Не удается получить значение сеанса - PullRequest
1 голос
/ 08 июня 2011

Я написал простой код для сохранения USerID с помощью сеанса.Однако я не могу получить значение сеанса, хотя оно не равно нулю.Я сделал именно так, как говорится в официальном руководстве Microsoft.Вот код:

Код на Default.aspx

string regCode = loginBase.getRegCodePerUser(txtLogin.Text);
Session["regCode"] = regCode;
//lblInfo.text=(string)Session["regCode"];When I check it shows the right string.It's OK
Response.Redirect("Selection.aspx");

Я не перехожу на эту страницу напрямую. Сначала я иду на Selection.aspx, затем UpdateStages.

А это код на другой странице (UpdateStages.apsx):

       if ((string)Session["connSTR"] == null && (string)Session["user"] == null)
    {
        Response.Redirect("Default.aspx");
    }
    else if ((string)Session["regCode"]!=null)
    {
        regCode=(string)Session["regCode"];
        lblInfo.Text = regCode;//Show nothing. Empty.           
    }

1 Ответ

1 голос
/ 08 июня 2011

Вполне возможно, что при установке переменной сеанса:

Session["regCode"] = loginBase.getRegCodePerUser(txtLogin.Text);

что имя пользователя еще не доступно, и поэтому оно возвращает пустую строку, и я предполагаю, что вы выполняетеэтот код: lblStatus.Text =loginBase.getRegCodePerUser(txtLogin.Text); на другой странице / после того, как пользователь вошел в систему, и поэтому вы получаете значение в метке, когда назначаете его напрямую.

Поместите точку останова в место, где вы устанавливаете переменную Session, и посмотрите, устанавливается ли это значение.

В противном случае ваши настройки сеанса могут быть неверными в вашем файле web.config, что приводит к тому, что значения сеанса будуточищается перед переходом на вторую страницу, где вы к ней обращаетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...