2013-07-05 162 views
1

我必须上传文件到box.com因为我需要授权并获取accesstoken和刷新令牌。我没有在c#asp.net中找到任何代码。我希望使用c#和asp.net进行身份验证的代码以及获取accesstoken和刷新令牌的代码。我在下面的代码尝试获取错误,因为页面已过期请求再次。 这里是C#asp.net.I代码使用Restsharp获取访问令牌和授权

public void GetAccessToken(string code, string ClientId, string ClientSecret) 
    { 
     RestClient rs = new RestClient(); 
     string grant_type = "authorization_code"; 
     RestRequest request = new RestRequest(Method.POST); 
     IRestRequest reuest = request; 
     string strHeaders = null; 
     RestResponse response = default(RestResponse); 
     IRestResponse resp = response; 
     string strResponse = null; 

     try 
     { 
      rs.BaseUrl = "https://www.box.com/api/oauth2/token"; 
      request.Resource = "oauth2/token"; 
      strHeaders = string.Format("grant_type={0}&code={1}&client_id={2}&client_secret={3}", grant_type, code, clientId, Clientsecret); 
      request.AddHeader("Authorization", strHeaders); 
      resp = rs.Execute(reuest); 
      strResponse = resp.Content; 

      Label1.Text = strResponse; 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

回答

1

从文档正在尝试: https://developers.box.com/oauth/ (请参阅“获得访问令牌”)

当一个交换的授权码一组访问令牌和刷新令牌,您需要向https://www.box.com/api/oauth2/token端点发出POST请求。

尝试在头部的“授权”部分添加要添加的内容,并将其放入URL编码的POST正文中。

甚至更​​好,尝试使用.NET SDK将处理这个非常的OAuth的认证流程的一部分,您: https://github.com/box/box-windows-sdk-v2

+0

非常感谢期待你的答复 – user2514945

0

您还需要设置编码:

request.RequestFormat = DataFormat.Xml;