我正在尝试解决大约6年前编写的旧版asp.net WebForms应用程序的问题。我会尝试解释并希望有人能看到修复。
我们的应用程序支持我们所谓的“API”。实际上,它只是在我们客户网站的页面中显示的几页。我们还提供了一个示例应用程序来说明如何使用它。
示例应用程序有一些表单字段供调用者提供值。提交后,我们会创建一个HTML字符串,其中包含一个标签为
的元素提交()是关于postgback的表格。
示例:
... form1.submit();
只要最终用户将我们的域放入其受信任的站点,此方法就能成功运行。否则,用户将获得权限被拒绝错误。但是,最近,我们有几个客户拒绝将我们添加到可信站点和
希望以另一种方式解决问题。
我尝试过的一种方法是使用HttpClient.PostAsync()来执行上面的表单/脚本,但是从服务器端执行。
public HttpResponseMessage Post(string address, MediaTypeWithQualityHeaderValue acceptType, List<KeyValuePair<string, string>> data)
{
using (HttpClient client = new HttpClient())
{
//client.BaseAddress = new Uri(address);
client.DefaultRequestHeaders.Accept.Add(acceptType);
HttpContent content = new FormUrlEncodedContent(data);
HttpResponseMessage response = client.PostAsync(address, content).Result;
return response.EnsureSuccessStatusCode();
}
}
它被称为:
string hash = GenerateHashValue();
List<KeyValuePair<string, string>> data = this.BuildPostData(hash);
MediaTypeWithQualityHeaderValue acceptType = new MediaTypeWithQualityHeaderValue("text/html");
HttpResponseMessage msg = Post(this.GetPostTargetUrl(), acceptType, data);
var task = msg.Content.ReadAsStringAsync();
task.Wait();
string result = task.Result;
Response.Write(result);
Response.End();
响应HTML已成功写入,但它本能地“断开连接” - 之后没有任何作用。通常,使用/ method about use可以在iframe中导航到我们的
上的其他页面site.Looking它在fiddler中,我看到我在使用current /方法时看到的一些帖子和重定向正在发生,我从我们网站获得了许多javascript文件的404.
有人可以提出另一种方法,我不会有XSS错误而是“连接”iframe吗?
谢谢, 丹