2017-09-25 54 views
0

我試圖獲取以編程方式創建的HtmlForm到外部網站的值。本網站要求將數據作爲POST發送,因爲它可能包含合理的信息。如何以編程方式將代碼從代碼提交到外部網站

我生成的JSON響應這樣的HtmlForm

JObject jsonResponseActionData = (JObject)joResponse["action_data"]; 
var redirectURL = (JValue)jsonResponseActionData["url"]; 

HtmlForm form= new HtmlForm { 
    Method = "post", 
    Action = redirectURL.ToString() 
}; 

var inputTypeString = "<input type=\"text\" name=\"inputName\" value=\"inputValue\">"; 
foreach (var obj in jsonResponseFields) { 
    if (obj.Value.ToString() == "") { 
     form.InnerHtml += inputTypeString.Replace("inputName", obj.Key).Replace("inputValue", "").Replace(">", " disabled >"); 
    } else { 
     form.InnerHtml += inputTypeString.Replace("inputName", obj.Key).Replace("inputValue", obj.Value.ToString()); 
    } 
} 

如果我把它寫像這樣爲HTML文件,並添加一個提交按鈕的話,我可以提交這樣的外部網站所以我能夠接受JSon-Response並正確提取所有信息。

我曾嘗試:

如何將生成的表單提交給外部網站?請注意,本網站確實要求我提交表格,因此任何其他不涉及提交表格的解決方案都不具有建設性。

回答

0

現在我實現了一個解決辦法,這也許是幫助他人(但也許這個答案是downvoted被遺忘,因爲它是這樣一個可怕的黑客):

我在子文件夾中創建一個新的HTML頁面。這個子文件夾受Web.config.htaccess的保護(因爲我沒有找到禁止在Web.config中調用* .html文件的方法),這意味着文件不能從外部源列出,並且文件也不能被查看,即使您知道文件名。

此HTML頁面中包含什麼,但我想提交表單和JavaScript代碼的自動點擊頁面加載提交按鈕:

<head> 
    <script> 
     function clickButton(){ 
      document.getElementById("submitForm").click(); 
    </script> 
</head> 
<body onload="clickButton()"> 
    <!--Actual content goes here--> 
</body> 

我然後將用戶重定向到該頁面:

Response.Redirect(pageName); 

一旦處理完JSON數據就完成了。

這對我而言很有效,因爲無論如何,用戶都會被重定向到外部網站,在最好的情況下,他/他甚至不會注意到重定向到這個中間網站,即使發現該網頁也不會不包含用戶不知道的任何內容,再加上HTML文件中的數據不敏感,這些數據必須由用戶在外部網站上輸入,因此這裏沒有可能的安全漏洞。至少我現在無法想到。

相關問題