Междоменная публикация в ASP.Net теряет поля формы

У меня есть 2 приложения ASP.Net в решении. Один из них в значительной степени представляет собой систему тестирования для стороннего приложения, которое отправляет данные POST в основное приложение. Я попытался имитировать эту функциональность, создав базовую HTML-форму и настроив действие так, чтобы оно указывало на основное приложение; однако коллекция NameValueCollection Request.Form была пустой. Я попытался сделать это в ASP.Net, используя перенаправление 307, и у меня была такая же проблема. Я временно переместил временную форму в основной проект, чтобы продолжить тестирование.

Вот код перенаправления 307, который я использовал:

Response.ClearContent();
Response.StatusCode = 307;
Response.StatusDescription = "Temporary Redirect";
//redirect to a different app.
Response.RedirectLocation = "http://localhost:xxxx/default.aspx";
Response.Flush();

Есть ли способ сделать кросс-доменную POSTing в веб-формах ASP.net? Он работает в одном домене, но не в разных доменах по какой-то причине.


person JamesEggers    schedule 27.07.2009    source источник


Ответы (1)


Самый простой способ — использовать несерверную ‹форму›, то есть без атрибута без runat="server", и просто установить действие к URL-адресу, на который вы хотите отправить сообщение:

<form method="post" action="http://localhost:xxxx/default.aspx">
    ...
</form>

Надеюсь это поможет.

person Ian Oxley    schedule 27.07.2009
comment
Сначала я пробовал это, и коллекция Request.Forms все еще оставалась пустой. - person JamesEggers; 27.07.2009
comment
Возможно, стоит отслеживать запрос на уровне HTTP, чтобы увидеть, что именно отправляется в данных POST — такие инструменты, как панель Firebug Net или прокси-сервер, например, тот, который поставляется с Burp Suite (portswigger.net/suite) должен помочь в этом. - person Ian Oxley; 04.08.2009