因此,作为标题暗示一个人如何执行HTTP POST到外部网站,同时将用户重定向呢? 我要寻找类似于此:
Redirect("MyWebsite.com", HttpAction.POST, new RedirectData(new { item = "itemValue"}));
它在ASP.NET MVC工作要做。
编辑
这种行为是必要的外部网站实现认证。 为验证算法:
- 用户导航到需要他来标识的网页。
- 该网页调用验证网站的网络服务,并初始化认证。
- 初始化返回GUID必须被张贴到指定的URL(比方说,它是“MyWebsite.com”)。
- 假设用户被重定向到的数据被张贴到URL。
到目前为止,我已经成功地想出这样的:
string url = "MyWebsite.com";
NameValueCollection formData = new NameValueCollection();
formData["ticket"] = Ticket.ticket;
WebClient webClient = new WebClient();
byte[] responseBytes = webClient.UploadValues(url, "POST", formData);
Response.BinaryWrite(responseBytes);
Response.Redirect("MyWebsite.com", true);
我得到的回应是我应该被重定向到该网站的HTML,问题是 - 什么呢? 我如何告诉,显示HTML,我通过响应得到了浏览器吗? 如果我只是重定向到“MyWebSite.com”将执行一个GET操作,这不是我所期待的。 做响应的二进制写无所作为 - 它只是写POST操作以我目前执行动作的响应 - 没有重定向到“MyWebSite.com”。