異なるドメインでユーザー名とパスワードを投稿する際に問題が発生しています。一方はフォームを正常に送信し、もう一方は送信しません(フォームデータは空です)。両方のドメインのhtmlコードは同じです。これがサンプルコードです-コメントされたドメインは投稿しません:どんな助けでも大歓迎です!
注:nginxで実行されているドメインはデータを正常に投稿しますが、apacheで実行されているドメインは、サーバーと関係がある場合はそうではありません。
public class CookieAwareWebClient : System.Net.WebClient
{
private System.Net.CookieContainer Cookies = new System.Net.CookieContainer();
protected override System.Net.WebRequest GetWebRequest(Uri address)
{
System.Net.WebRequest request = base.GetWebRequest(address);
if (request is System.Net.HttpWebRequest)
{
var hwr = request as System.Net.HttpWebRequest;
hwr.CookieContainer = Cookies;
}
return request;
}
}
# Main function
NameValueCollection postData = new NameValueCollection();
postData.Add("username", "abcd");
postData.Add("password", "efgh");
var wc = new CookieAwareWebClient();
//string url = "https://abcd.example.com/service/login/";
string url = "https://efgh.example.com/service/login/";
wc.DownloadString(url);
//writer.WriteLine(wc.ResponseHeaders);
Console.WriteLine(wc.ResponseHeaders);
byte[] results = wc.UploadValues(url, postData);
string text = System.Text.Encoding.ASCII.GetString(results);
Console.WriteLine(text);