Я использую веб-приложение ASP.NET, которое передает идентификатор сеанса в строке URL. Есть странная ошибка, которая, как я предполагаю, связана с конфигурацией сервера, но я в растерянности.
На странице A есть строка URL, которая выглядит примерно так:
http://whateverqa.com/NTapsWeb/(S(yn5cby55lgzstcen0ng2b4iq))/List_Forms.aspx?wid=__zzwid1
когда вы нажимаете кнопку, она переходит на страницу B, на которой отображается некоторая информация; когда вы нажимаете кнопку «Выход» на этой странице, она возвращает вас на страницу A, но замечает, как она перемещает идентификатор сеанса в URL-адресе за NTapsWeb:
http://whateverqa.com/(S(yn5cby55lgzstcen0ng2b4iq))/NTapsWeb/List_Forms.aspx?wid=__zzwid1
Это оставляет меня с ошибкой страницы, которая говорит:
"Вы не авторизованы для просмотра этой страницы
У вас нет прав для просмотра этого каталога или страницы с использованием предоставленных вами учетных данных.
Пожалуйста, попробуйте следующее:
Свяжитесь с администратором веб-сайта, если вы считаете, что сможете просматривать этот каталог или страницу.
Нажмите кнопку Обновить, чтобы повторить попытку с другими учетными данными.
Ошибка HTTP 403 - запрещено: доступ запрещен.
Информационные службы Интернета (IIS)
Техническая информация (для обслуживающего персонала)
Перейдите в Службу поддержки продуктов Microsoft и выполните поиск по названию слов HTTP и 403.
Откройте справку IIS, доступную в диспетчере IIS (inetmgr), и выполните поиск по темам, озаглавленным «Безопасность, проверка подлинности и пользовательские сообщения об ошибках». *
Странно то, что он работает на производственном сервере и прекрасно работает, когда идентификатор сессии перемещается вниз по строке. Если я скопирую идентификатор сеанса обратно и вставлю его после ошибки:
http://whateverqa.com/NTapsWeb/(S(yn5cby55lgzstcen0ng2b4iq))/List_Forms.aspx?wid=__zzwid1
загружается нормально. Опять же, это хорошо работает в Production, просто не работает на сервере QA.
Спасибо за ответ. Это не проблема тайм-аута, потому что, как я уже говорил, если переместить идентификатор сеанса вверх в URL, он снова работает, поэтому данные все еще там.
Код для кнопки выхода написан на JavaScript и выглядит следующим образом:
<script type="text/javascript">
function ExecFuncInMain(id, arg)
{
//alert('test'+id);
var o = window.top._mainWindow.document.all[id];
if(o!=null)
{
var s = o.onclick+"";
//alert(s);
if(s!=null && s!='null')
{
s = s.replace("javascript:", "").replace("\n", "").replace("\n", "").replace("\n", "").replace("\n", "").replace("\n", "").replace("{", "").replace("}","");
s = "window.top._mainWindow."+s.replace("function anonymous()", "")+";";
}
else s = s.replace('null','');
s = s+"window.top._mainWindow.__doPostBack('"+o.id+"', '');";
//alert(s);
eval(s);
}
else alert("object is null");
}