gpt4 book ai didi

c# - ASP.NET HTTP 授权 header

转载 作者:IT王子 更新时间:2023-10-29 04:20:42 26 4
gpt4 key购买 nike

我想知道为什么我的 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();

另一个烦人的是当我通过 fiddler 添加 watched 变量时它工作正常。

最佳答案

我遇到了如何将身份验证/凭据添加到 header 的问题。我通过以下方式找到了解决方案。

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;

这给了我想要的标题(粘贴的 Wireshark 描述),

Authorization: Basic bXlVc2VyOm15UHdk\r\n
Credentials: myUser:myPwd

关于c# - ASP.NET HTTP 授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4675166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com