使用 Google 的 OAuth2 库时不支持给定路径的格式

Given path's format not supported when using Google's OAuth2 library

我一直在尝试通过 OAuth2 向我正在处理的桌面(C#、WPF)应用程序添加对 Google 服务的身份验证。我正在使用 Google 通过 nuGet 提供的 OAuth 2.0 C# 库,并且我根据 Google's site 上的示例对我的代码进行了建模。我的登录代码如下所示:

Task<UserCredential> loginTask = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets { ClientId = ClientId, ClientSecret = ClientSecret },
new[] { BloggerService.Scope.Blogger },
cmbUser.SelectedItem.ToString(),
CancellationToken.None,
new FileDataStore("Blogger.Auth"));

每当我执行该代码时,我的浏览器都会出现并要求我登录 Google。但是,在这样做之后,该行抛出 System.AggregateException。深入内部异常,看起来核心问题是这样的:

InnerException: System.NotSupportedException
   HResult=-2146233067
   Message=The given path's format is not supported.
   Source=Microsoft.Threading.Tasks
   StackTrace:
        at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
        at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
        at Microsoft.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
        at Microsoft.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
        at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.<AuthorizeAsync>d__1.MoveNext() in c:\code\google.com\google-api-dotnet-client\default\Tools\Google.Apis.Release\bin\Debug\test\default\Src\GoogleApis.Auth.DotNet4\OAuth2\GoogleWebAuthorizationBroker.cs:line 59
   InnerException: 

我试过在网上搜索,但我之前没有看到任何人 运行 遇到过 OAuth2 的这个问题。有谁知道可能导致此错误的原因以及如何解决它?

更多细节 -- 我的应用程序使用的是 .NET Framework 4.5。对于授权,我使用的是 Google.Apis.Auth.

的 1.9 版

我找到问题了。对于用户名,我使用的是 cmbUser.SelectedItem.ToString()。该组合框有一堆包含电子邮件地址的 ListBoxItems,当对其中一个调用 ToString() 时,将返回如下值:

"System.Windows.Controls.ListBoxItem: email@domain.com"

该字符串包含路径中无效的字符,因此我遇到了无效路径异常。

我能够通过获取刚刚返回电子邮件地址的 ListBoxItem 的内容 属性 来解决此问题。