0

我一直在研究 Oauth2 的过程。我正在编写一个 C# win 表单应用程序。我试图弄清楚是否有办法发出 http 请求来获取授权代码,而不是弹出网络浏览器并要求“授予访问权限”。如果必须这样做,我想知道如何将该代码传递给程序?由于我使用的是 C# 表单应用程序,因此我不确定如何将其传递给控制台。

  public static IAuthorizationState getState(NativeApplicationClient arg)
{
    IAuthorizationState state = new AuthorizationState(new[] {AnalyticsService.Scopes.Analytics.GetStringValue()});
    state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
    Uri authUri = arg.RequestUserAuthorization(state);
    Process.Start(authUri.ToString());
    Console.Write("  Authorization Code: ");
    string authCode = Console.ReadLine();
    Console.WriteLine();
    return arg.ProcessUserAuthorization(authCode, state);

}
4

1 回答 1

0

您可以从您的应用程序调用浏览器控件。一旦您的用户成功登录 Google 并从该浏览器控件授权您的应用程序,请从您的浏览器控件所在页面的标题中解析授权代码。

看这里:

https://developers.google.com/youtube/2.0/developers_guide_protocol_oauth2#OAuth2_Installed_Applications_Flow

如果您将redirect_uri 设置为urn:ietf:wg:oauth:2.0:oob,Google 的授权服务器将向浏览器返回一个页面,如下所示。然后,您的应用程序可以从页面标题中提取授权代码。

小心地准确解析代码的描述方式。然后继续关闭浏览器控件并执行您需要执行的操作。

于 2013-04-16T17:02:17.113 回答