在 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 请求的主要内容,如果未能解决你的问题,请参考以下文章