2012-06-12 4 views
1

У меня есть "login.asp" страница, где я устанавливаю переменную сеанса.Классическое значение сеанса Asp потеряно в Response.Redirect

Session("username") = username 

и доступа к значению, как:

Dim username 
username = Session("username") 
response.write(username) 

Я также использую это значение в той же странице с помощью "response.write" (то есть в VBScript). После этого я перенаправляю пользователя на «user.asp». На этой странице, когда я пытаюсь получить доступ к значению сеанса, он возвращает null. Как получить значение сеанса на перенаправленной странице?

Спасибо заранее.

+0

Как вы получаете доступ к значению сеанса на странице user.asp? Добавьте код к вашему вопросу. –

+0

Спасибо, Николас. Я изменил вопрос. Добавил Dim username username = Session ("username") response.write (имя пользователя) –

+0

С какими браузерами вы проводите тестирование? У вас отключены файлы cookie сеансов в браузере? Как выглядит ваш код перенаправления? User.asp находится в приложении? Вы использовали скрипач, чтобы наблюдать за разговором между браузером и сервером? Если это файл cookie ASPSESSION отправляется пользователю user.asp? – AnthonyWJones

ответ

2

Этот код ниже работает:

Установка имя пользователя сессии Переменная

login.asp

<% 
Dim username 
username = "auser" 

Session("username") = username 
response.redirect("user.asp") 
%> 

Получение имя пользователя сессии Переменная

user.asp

<% 
Dim username 
username = Session("username") 

response.write("username=" + username) 
%> 
0

Вы не устанавливаете его, а получаете его в своем примере. Попробуйте Ваш логин

Session("username") = username 

и

username = Session("username") 

в вашем user.asp

Я сам у меня есть процедура для этого, но вы должны использовать NTLM, чтобы он работать импортировать это во всех моих страницах, где мне нужно с

<!--#include file="routines.asp"--> 

И в routines.asp я имею

Function getUser() 
    getUser = uCase(Request.ServerVariables("AUTH_USER")) 
End Function 
+0

Извините Peter.Actually я устанавливаю сессию, но пропущен, чтобы разместить в вопросе во время редактирования. –

+0

Если бы я был вами, я бы рассмотрел мою рутину. например, пользователь может перейти на любую страницу без перенаправления и по-прежнему иметь правильную переменную, так как я использую это все, что такое hastle - это история – peter

+1

NTLM требует, чтобы все пользователи были известны домену, а под классическим ASP потребуется весь сценарий ASP для запуска в качестве этих пользователей. Этот подход является только жизнеспособным в среде интрасети, но вопрос не указывает на то, что интранет реализуется. – AnthonyWJones

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