HTTP授权标头被删除

时间:2013-10-23 19:25:04

标签: asp.net http-headers iis-6 windows-server-2003 http-authentication

我有一个简单的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?

0 个答案:

没有答案