我一直试图通过OAuth2向Google服务添加身份验证到我正在处理的桌面(C#,WPF)应用程序。我正在使用Google通过nuGet提供的OAuth 2.0 C#库,并且我已经在Google's site上的示例中对我的代码进行了建模。我的登录代码如下所示:使用Google的OAuth2库时,不支持给定路径格式
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框架4.5。对于授权,我使用的是Google.Apis.Auth 1.9版。
FileDataStore将凭据存储在%appData%目录中我不知道它是否与此有关。尝试将其更改为localfiledatastore,例如https://github.com/LindaLawton/Google-Dotnet-Samples/blob/master/Authentication/Diamto.Google.Authentication/Diamto.Google.Authentication/LocalFileDataStore%20.cs,或者可能更快只需删除filedatastore并在不保存数据存储的情况下进行测试。 – DaImTo 2015-02-24 13:15:13
不行 - 我只是尝试没有数据存储和FileDataStore,我得到了同样的错误。 – Scott 2015-02-25 01:02:30