在 HTTP 请求 c# 的授权标头中获取签名的 OAuth 请求
Posted
技术标签:
【中文标题】在 HTTP 请求 c# 的授权标头中获取签名的 OAuth 请求【英文标题】:Get signed OAuth request in the Authorization header of a HTTP Request c# 【发布时间】:2017-12-25 12:18:43 【问题描述】:我正在使用下面的代码从 url 获取授权标头,但授权字段始终返回为 null
string url = "https://xyz.appdirect.com/api/integration/v1/events/abc-123";
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
string value = httpWebRequest.Headers["Authorization"];
另外,当我遵循 MSDN 代码时,我得到的标题为空值
WebRequest request = WebRequest.Create(url);
request.Method = WebRequestMethods.Http.Get;
NameValueCollection authHeader = request.Headers;
if (authHeader.Count > 0)
foreach (string strKey in authHeader)
string s = strKey + " = " + request.Headers[strKey] + "<br />\n";
Console.WriteLine(String.Format(" Key Value header: 0", authHeader[strKey]));
else
Console.WriteLine(String.Format("No headers found"));
获取授权标头的正确方法是什么?
【问题讨论】:
【参考方案1】:简单的解决方案是从HttpContext
获取标头,但我将其复杂化了做其他事情,而不是直接从HttpContext
读取它。
NameValueCollection authHeader = HttpContext.Current.Request.Headers;
foreach (string strKey in authHeader)
_logger.Info(String.Format(" Key Value header: 0", authHeader[strKey]));
【讨论】:
以上是关于在 HTTP 请求 c# 的授权标头中获取签名的 OAuth 请求的主要内容,如果未能解决你的问题,请参考以下文章
Azure 服务器未能对请求进行身份验证。确保授权标头的值格式正确,包括签名
在 C# 的 RESTfull/HTTP 请求中添加标头和发布数据