0

我有一个问题,我想访问一个带有 is 代码的框:

using (var request1 = new HttpRequestMessage() { RequestUri = new Uri("https://www.box.com/api/oauth2/token"), Method = HttpMethod.Post })
        {
            HttpContent content = new FormUrlEncodedContent(new[] 
            { 
             new KeyValuePair<string, string>("grant_type", "authorization_code"), 
             //new KeyValuePair<string, string>("code", boxAccessCode),
             new KeyValuePair<string, string>("client_id", boxClientId),
             new KeyValuePair<string, string>("client_secret", boxClientSecret)

            }


            );
        }

但我不知道我能否获得“代码”,而无需进入网络 http://127.0.0.1/?state=security_token%3DKnhMñlkjasdasnM0nHlZA&code=RCaBKsE681239OPyYLLWwutg9Nwmmk

如何通过 c# 获取此代码?

4

1 回答 1

1

这里有关于 Box 中 OAuth2 流程的良好文档: https ://box-content.readme.io/#oauth-2

该流程从将浏览器/webview 导航到身份验证页面开始——该页面应以https://app.box.com/api/oauth2/authorize开头。我不确定问题末尾的 URL 代表什么,但如果它是重定向 URL,通常不鼓励使用环回 URL。

简而言之,您必须在成功登录后使用适当的参数(例如,客户端 ID/秘密、重定向 url)导航到授权页面,框会将您的 web 视图重定向到提供的重定向 url,其中将提供身份验证代码作为查询字符串参数。使用 C# 这可能意味着您需要启动某种 web 视图。

C# SDK 中有一个 WPF 示例,它执行整个 OAuth 流程: https ://github.com/box/box-windows-sdk-v2

于 2015-10-30T05:13:49.577 回答