2009-09-03 1 views
0

Хотя это похоже на другие вопросы, я не мог понять это, и я чувствую себя довольно глупым, не зная, как это сделать.Asp.net - Опубликовать данные формы на отдельный URL-адрес без создания нового запроса

1) Я не могу использовать свойство PostbackURL для нажатия кнопки.

В основном, что мне нужно сделать, когда пользователь нажимает кнопку, мне нужно отправить данные на отдельный URL-адрес. Эти данные не найдены в форме. Мне нужно добавить данные программно в код позади.

Таким образом, пользователь нажмет кнопку «Отправить». Затем я добавил бы адрес электронной почты пользователя, firstname, lastname к namedvaluecollection, который я предполагаю, а затем разместил его на определенном URL-адресе.

Мой вопрос: как вы это делаете? Я пока не смог найти что-либо в Интернете, в котором четко указано, как это делается, без создания нового HttpWebRequest.

EDIT PER прокомментируйте ниже:

В основном мы интегрирующей наше членство с отдельным приложением, и это работало раньше. К сожалению, их техническая поддержка не очень помогает.

В основном пользователь на своем сайте и пытается сделать то, что требует, чтобы Вы вошли в систему.

Пользователь перенаправляется на мою страницу входа в систему. Пользователь вводит учетные данные. Если пользователь аутентифицируется, я отправляю их информацию (имя, адрес электронной почты и т. Д.) На определенный URL-адрес. Этот URL-адрес создаст пользователя на своем конце (если он не существует) и/или перенаправит их на любой URL, к которому они пытались получить доступ в первый раз.

У меня это работает, однако, поскольку я создаю новый объект HttpWebRequest, перенаправление на их конце не работает.

Я мог бы сделать это все в строке запроса, но с количеством отправляемых данных. Я думаю, что превышу предел символа URL.

ответ

0

Если пользователь всегда отправляет на другую страницу, то вы можете сделать следующее.

1.) Добавить информацию, которую вы собираетесь добавить в скрытые поля на странице, так она и есть. 2.) Затем измените «Действие» на объекте формы, чтобы сделать прямой пост на другой странице.

Теперь в зависимости от реализации, которые могут или не могут работать

+0

Я не могу добавить поля на страницу, потому что поля заполняются только после нажатия пользователем кнопки отправки. В основном это функция входа. Пользователь регистрируется, пользовательский объект заполняется, затем эти свойства затем отправляются на другой URL-адрес. –

1

Вы могли бы взглянуть на метод Server.Transfer. Это будет (на сервере, а не клиенте) передать все исполнение на новую страницу, включая текущие формы и коллекции запросов, и отправить результаты этой страницы обратно в клиентский браузер.

Однако, прочитав последнюю часть вашего вопроса, вы подразумеваете, что вы, вероятно, не переходите на страницу на своем сервере, не так ли? В этом случае это, вероятно, не сработает для вас.


Редактировать, чтобы ответить на комментарий

Не могли бы вы уточнить, что вы хотите, чтобы пользователь, чтобы увидеть то, с вашей точки зрения?

  • Они находятся на www.example.com/someform.aspx, они заполняют форму, и нажмите кнопку.
  • Форма отправляется обратно на сервер (someform.aspx), некоторая обработка происходит на стороне сервера, а затем исходные данные формы вместе с некоторыми дополнительными полями отправляются по адресу www.someotherserver.com/anotherform.xxx
  • Что следует показывать пользователю на этом этапе? Результаты страницы на someotherserver.com или что-то еще с вашего сервера?

В какой-то момент вам нужно будет создать новый запрос на сторонний сайт - это либо будет из браузера клиента через JavaScript, либо через что-то вроде Response.Redirect, и в этом случае вы ограничивается полями строки запроса, и пользователь будет знать, что их отправили где-то в другом месте или за кулисами, используя HttpWebRequest.

Лично я просто не думаю, что это можно сделать, как вы хотите, я боюсь.

+0

Нет, я отправляю полностью отдельное приложение [URL] –

0

Сделайте вторую форму, которая имеет postbackurl, установленную на целевой сайт. Это может быть другая страница или скрытая вторая форма на той же странице.

После того как основная форма будет отправлена ​​пользователем, вы заполните (скрытые) поля второй формы из кода и отправьте ее с помощью javascript form.submit() на pageload (вставьте javascript из codebehind).

Конечно, проще всего ответить Response.Redirect, что составляет инициирование GET из браузера.

Могу ли я указать вам, что переменные POST могут легко манипулировать пользователями? Это менее очевидно, чем манипулирование URL-адресом, поэтому здесь наблюдается некоторое замедление для нетехнических пользователей.

Но нет БЕЗОПАСНОСТИ БЕЗОПАСНОСТИ и НЕТ защиты данных в ПОЧТЕ!

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

  • Нет связанных вопросов^_^