【问题标题】:Making WebRequest with OAuth 2.0 in C#在 C# 中使用 OAuth 2.0 进行 WebRequest
【发布时间】:2014-04-02 12:39:26
【问题描述】:

我正在尝试使用 OAuth 2.0 对授权服务器进行简单调用。

而且我对 OAuth 2.0 非常陌生。

如何调用授权服务器以取回我的访问令牌以发送到请求的请求标头中(如果我的措辞正确的话)。

以下是我所拥有的,在此先感谢您的帮助。

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(Uri);
request.Method = "POST";

var uri = new Uri(Uri);               

string postData = output;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;

IAuthorizationState authorization = null;

AuthorizationServerDescription serviceDecription = new AuthorizationServerDescription
{
    AuthorizationEndpoint = uri,                    
};

WebServerClient client = new WebServerClient(serviceDecription, Key, Secret);

client.AuthorizeRequest(request, authorization);                

using (Stream dataStream = request.GetRequestStream())
{
    dataStream.Write(byteArray, 0, byteArray.Length);
    dataStream.Close();
    WebResponse response = request.GetResponse();

    if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK)
    {
        using (StreamReader sr = new StreamReader(response.GetResponseStream()))
        {
            sr.ReadToEnd();
        }
    }
    else
    {
        dataStream.Close();
        response.Close();
    }
}

【问题讨论】:

    标签: c# oauth-2.0


    【解决方案1】:

    什么AS?用户如何认证?

    通常,OAuth2 流程需要用户与浏览器进行交互(如this doc 中所述)。如果您可以为您正在尝试做的事情添加更多上下文,那就太好了。

    您可以使用许多框架来避免处理 OAuth 的较低级别的细节。

    【讨论】:

      猜你喜欢
      • 2016-10-22
      • 2015-12-13
      • 2020-03-18
      • 1970-01-01
      • 2012-11-27
      • 2011-08-17
      • 2014-03-14
      • 1970-01-01
      • 2016-01-26
      相关资源
      最近更新 更多