2010-06-03 2 views
0

у нас возникает проблема с нашим ASP-сервером..NET Response.Redirect не работает должным образом на новом сервере

Если вы попытаетесь получить доступ к странице с защитой паролем, она проверит проверку безопасности и перенаправит вас, если вы не вошли в систему, сохраняя URL-адрес (например, члены/MemberLogin.aspx? Doc =/PodCast/Default.aspx)

Скрипт vb помещает переменную «/PodCast/Default.aspx» в переменную и удерживает ее до завершения процесса входа в систему.

Как только пользователь вводит имя пользователя и пароль, он должен выполнить Response.Redirect (strRedirectURL) и перейти к «/PodCast/Default.aspx», но вместо этого он перейдет на страницу default.aspx для входа в систему успешно.

Кикер, я знаю, что код на 100% правильный, потому что он работал на нашем предыдущем сервере, но когда мы выталкивали все данные на этот сервер, все работает, НО эта штука.

Любые предложения, было бы здорово!

Спасибо всем!

ответ

0

Вы используете специальный код перенаправления? Параметр querystring по умолчанию ASP.NET использует для перенаправления после входа в систему ReturnUrl.

Вы привели пример: Members/MemberLogin.aspx? doc = /PodCast/Default.aspx.

Основываясь на этом, я бы предположил, что после входа в систему .net framework проверяет значение Request.QueryString["ReturnUrl"] и находит его пустым, поэтому сайт перенаправляется на базовый url.

Если по какой-то причине вы строите нестандартную URL, используя doc в качестве параметра строки запроса, вы можете подключить в OnLogin случае вашего Login элемента управления, такие как:

разметки:

<asp:Login id="Login1" runat="server" OnLoggedIn="Login1_LoggedIn" /> 

код :

protected void Login1_LoggedIn(object sender, EventArgs e) 
{ 
    string url = Request.QueryString["doc"]; 
    if(!string.IsNullOrEmpty(url)) 
    { 
     Response.Redirect(url); 
    } 
} 
+0

сначала я не так много. NET парень так голый со мной, если я не знаю, как я. Человек, который написал все это, больше не существует, и этот код, похоже, является ошибочным здесь и там с необычными практиками. , что, как говорится, страница входа в систему обнаруживает предыдущую страницу, и она помещает ее в строковую переменную после загрузки страницы. После ввода имени пользователя и пароля он, похоже, перезагружает и освобождает информацию о переменной и по умолчанию объявляет другую переменную else. Это имеет смысл? lol Спасибо за помощь! – Brad

+0

Это если заявление я упомянул выше If Len (strRequestedDoc)> 0 Тогда strRedirectURL = strRequestedDoc \t \t \t \t \t Else strRedirectURL = "/ Члены" \t \t \t End If – Brad

+0

Вы можете разместить свой код - для страницы входа? С этим вам будет сложно справиться, поскольку вы используете пользовательские функции. Исходный код является ключевым здесь, я думаю. –

0

Если ваш механизм обратной передачи (например, кнопка) существует внутри обновляемой панели, вам необходимо установить триггер asp: PostBackTrigger ControlID = "XXXX"/

+0

Что ваш ответ добавляет к принятому два года назад. Проверьте этот вопрос [metaSO] (http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question) и [Jon Skeet: Coding Blog] (http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx) о том, как дать правильный ответ. – Yaroslav