C#Oauth2检索验证码

时间:2013-04-04 16:12:53

标签: google-oauth

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

}

1 个答案:

答案 0 :(得分: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的授权服务器将向浏览器返回一个页面,如下所示。然后,您的应用程序可以从页面标题中提取授权代码。

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

相关问题