Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Как я могу опубликовать и затем перенаправить на внешний URL из ASP.Net?
ASP.NET серверные элементы управления обратной связью на свою собственную страницу. Это приводит к тому, что вы хотите перенаправить пользователя на внешнюю страницу, но по какой-то причине (например, для аутентификации) должны разместить на этой странице сообщение.
HttpWebRequest отлично работает, если вы не хотите перенаправлять, а JavaScript в некоторых случаях подходит, но может стать сложным, если вам действительно нужен код на стороне сервера,чтобы собрать данные для публикации.
Так как же вы одновременно отправляете сообщение на внешний URL и перенаправляете пользователя на результат из вашего кода ASP.NET codebehind?
Вот я и решил эту проблему сегодня. Я начал с этой статьи на C# Corner, но нашел этот пример - хотя и технически обоснованный - немного неполным. Все, что он сказал, было правильно, но мне нужно было попасть на несколько внешних сайтов, чтобы собрать это вместе, чтобы работать именно так, как я хотел.
Это не помогло, что пользователь технически не подавал форму вообще; они нажимали ссылку, чтобы перейти в наш Центр поддержки, но чтобы войти в них, сообщение http должно было быть сделано на сайте Центра поддержки.
Это решение включает в себя использование HttpContext.Current.Response.Write() для записи данных для формы, а затем использование бита Javascript на форме.
<body onload="">
способ подачи формы на соответствующий URL.
Когда пользователь нажимает на ссылку Центр поддержки, вызывается следующий метод для записи ответа и перенаправления пользователя:
public static void PassthroughAuthentication()
{
System.Web.HttpContext.Current.Response.Write("<body
onload=document.forms[0].submit();window.location=\"Home.aspx\";>");
System.Web.HttpContext.Current.Response.Write("<form name=\"Form\"
target=_blank method=post
action=\"https://external-url.com/security.asp\">");
System.Web.HttpContext.Current.Response.Write(string.Format("<input
type=hidden name=\"cFName\" value=\"{0}\">", "Username"));
System.Web.HttpContext.Current.Response.Write("</form>");
System.Web.HttpContext.Current.Response.Write("</body>");
}
Ключ к этому методу заключается в том, что onload бит Javascript, который, когда тело страницы загружается, отправляет форму, а затем перенаправляет пользователя обратно на мою собственную домашнюю страницу. Причина этой небольшой неприятности заключается в том, что я запускаю внешний сайт в новом окне, но не хочу, чтобы пользователь повторно отправлял скрытую форму, если они обновляют страницу. Плюс эта скрытая форма сдвинула страницу вниз на несколько пикселей, что действовало мне на нервы.
Меня бы очень заинтересовали любые более чистые идеи, которые у кого-нибудь есть на этот счет.
Эрик Сиппл
Я начал с этого примера с CodeProject
Затем вместо добавления на страницу я позаимствовал у saalon (выше) и сделал Response.Write().
Я бы сделал запись формы в вашем коде за использованием класса HttpWebRequest. Вот хороший вспомогательный класс, чтобы начать работу:
http://geekswithblogs.net/rakker/archive/2006/04/21/76044.aspx
Оттуда вы можете просто сделать Response.Redirect, или, возможно, вам нужно изменить свое действие в зависимости от результата сообщения (если была ошибка, покажите ее пользователю или что-то еще). Я думаю, что у вас уже был ответ на ваш вопрос, чтобы быть честным - похоже, вы думаете, что это перенаправление post OR, когда на самом деле вы можете сделать их оба из вашего кода позади.
Если вы используете ASP.NET 2.0, вы можете сделать это с помощью межстраничной публикации .
Edit: я пропустил тот факт, что вы спрашиваете о внешней странице. Для этого, я думаю, вам нужно будет иметь свой ASP.NET page gen в форме HTML, действие которой установлено на удаленный URL, а метод-на POST. (Используя межстраничную публикацию, это может быть даже другая страница без UI, только скрытые элементы формы.) Затем добавьте немного javascript, чтобы отправить форму, как только результат обратной передачи был получен на клиенте.
Я сделал это путем рендеринга формы, которая автоматически публикует (используя JavaScript) к нужному удаленному URL - соберите всю информацию, которая вам нужна для публикации в обратной передаче веб-формы, а затем создайте HTML для формы удаленной публикации и верните ее клиенту.
Я построил для этого служебный класс, содержащий удаленный URL и коллекцию пар имя / значение для формы.
Межстраничная публикация будет работать, если вы владеете обеими вовлеченными страницами, но не тогда, когда вам нужно разместить сообщение на другом сайте (PayPal, например).
Мне нужно было открыть в том же окне, имея дело с возможными проблемами фрейма с исходной страницы, а затем перенаправить на внешний сайт в коде позади:
Private Sub ExternalRedirector(ByVal externalUrl As String)
Dim clientRedirectName As String = "ClientExternalRedirect"
Dim externalRedirectJS As New StringBuilder()
If Not String.IsNullOrEmpty(externalUrl) Then
If Not Page.ClientScript.IsStartupScriptRegistered(clientRedirectName) Then
externalRedirectJS.Append("function CheckWindow() {")
externalRedirectJS.Append(" if (window.top != window) {")
externalRedirectJS.Append(" window.top.location = '")
externalRedirectJS.Append(externalUrl)
externalRedirectJS.Append("';")
externalRedirectJS.Append(" return false;")
externalRedirectJS.Append(" }")
externalRedirectJS.Append(" else {")
externalRedirectJS.Append(" window.location = '")
externalRedirectJS.Append(externalUrl)
externalRedirectJS.Append("';")
externalRedirectJS.Append(" }")
externalRedirectJS.Append("}")
externalRedirectJS.Append("CheckWindow();")
Page.ClientScript.RegisterStartupScript(Page.GetType(), clientRedirectName, externalRedirectJS.ToString(), True)
End If
End If
End Sub