Cod*_*ody 25 c# asp.net httpwebrequest
我想知道为什么我的asp.net应用程序在命名为"授权"时不会将标题添加到我的帖子中,但是当我更改一个字符时,它会正常工作,比如说"授权".在其他网站的文档中,他们总是使用"授权"这个名称,所以我也想,在这一点上,我只是想知道为什么.
我已经阅读了一些关于此的主题,但没有找到任何合理的原因.
这是我的代码如下:
string fileName = "c:\\xyz.xml";
string uri = "http://myserver/Default.aspx";
req = WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "text/xml";
byte[] authBytes = Encoding.UTF8.GetBytes("DDSServices:jCole2011".ToCharArray());
req.Headers.Add("Authorization", "BASIC " + Convert.ToBase64String(authBytes) );
req.Headers.Add("test", "test");
UTF8Encoding encoder = new UTF8Encoding();
byte[] data = encoder.GetBytes(this.GetTextFromXMLFile(fileName));
req.ContentLength = data.Length;
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();
req.Headers.Add("Authorization", "BASIC" + Convert.ToBase64String(authBytes));
System.Net.WebResponse response = req.GetResponse();
System.IO.StreamReader reader = new StreamReader(response.GetResponseStream());
string str = reader.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)
另一个令人讨厌的是当我通过fiddler添加监视变量时,它工作正常.
Ind*_*ent 42
我遇到了一个问题,如何将标识符/身份验证添加到标头.我通过以下方式找到了解决方案.
string _auth = string.Format("{0}:{1}", "myUser","myPwd");
string _enc = Convert.ToBase64String(Encoding.ASCII.GetBytes(_auth));
string _cred = string.Format("{0} {1}", "Basic", _enc);
req.Headers[HttpRequestHeader.Authorization] = _cred;
Run Code Online (Sandbox Code Playgroud)
这给了我想要的那些标题(粘贴Wireshark描述),
授权:基本bXlVc2VyOm15UHdk\r \n
凭据:myUser:myPwd
小智 11
对于HTTP基本授权,您应该使用Credentials属性.
req.Credentials = new NetworkCredential("DDSServices", "jCole2011");
这应该做你想要的.而不是设置Authorization标头.
归档时间: |
|
查看次数: |
86187 次 |
最近记录: |