我有一个简单的ASP.Net网站,它接受HTTP Post并将文件保存到文件夹。
网页本身会查找“授权”HTTP标头。
我创建了一个简单的C#应用程序,上传了HTTP Post以上传文件:
using (var client = new WebClient())
{
client.Headers.Add(HttpRequestHeader.Authorization,
"Basic " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("username:password")));
client.Headers.Add("TestHeader", "test");
client.Headers.Add("FileName", "RRO_D_VI_DLCRS_PPERASV02000000__01_02_001_91772ef0-e758-4886-b070-4db4cafe5366.gz");
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
byte[] result = client.UploadFile(url, fileToUpload);
string responseAsString = Encoding.Default.GetString(result);
}
当网站在我的本地PC上运行并运行我的测试程序时,它可以正常工作。当我从QA服务器(Windows Server 2003)运行网站并运行我的测试程序时,它可以正常工作。
但是,当我从生产服务器(通过VPN访问)(Windows Server 2003和IIS6)运行网站时,“授权”标头完全丢失。我设置的所有其他HTTP标头都是可见的,但授权标头已被完全删除。
我也使用Fiddler的Composer测试了它,结果相同。我有另一个人试图从一个完全独立的网络(不使用VPN)访问该网站,他们得到了相同的结果。
什么会导致删除Authorization HTTP标头?有什么想法吗?
谢谢!
的更新 的 * 好的,我发现了问题。我将POST发送到www.MyDomain.com,网站的默认页面是Default.aspx。如果我将请求发送到www.MyDomain.com/Default.aspx,它可以正常工作。当请求转到www.MyDomain.com时,如何将授权标题转发到Default.aspx?