System.UnauthorizedAccessException访问路径' Google.Apis.Auth' Gmail Api拒绝使用

时间:2014-11-11 17:34:05

标签: asp.net

我已经为电子邮件管理实施了Gmail Api ..但在我的本地IIS上,它提供了以下错误

System.UnauthorizedAccessException拒绝访问“Google.Apis.Auth”路径。

我已经在项目文件夹和“〜\ AppData \ Roaming \ Google.Apis.Auth”上获得了“EveryOne”的许可,因为我已经阅读了某个地方,Gmail Api访问此文件夹以获取令牌/详细信息.. < / p>

以下代码我正在使用:

UserCredential凭证;             using(var stream = new FileStream(Server.MapPath(“/”)+“client_secrets_desktop.json”,FileMode.Open,FileAccess.Read))             {                 credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets,                     new [] {GmailService.Scope.GmailReadonly},                     “user”,CancellationToken.None);             }

        var service = new GmailService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = "Gmail Test",
        });





        try
        {
            ListLabelsResponse response = service.Users.Labels.List("me").Execute();
            //foreach (Label label in response.Labels.OrderBy(p => p.Name))
            //{
            //    Console.WriteLine(label.Id + " - " + label.Name);
            //}
        }

提前致谢...

1 个答案:

答案 0 :(得分:0)

有同样的问题并解决了将dataStore参数添加到

的问题
GoogleWebAuthorizationBroker.AuthorizeAsync()

生成凭据的调用。那就是添加FileDataStore(存储)

        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            GoogleClientSecrets.Load(stream).Secrets, 
            Scopes,
            createdByUser, 
            CancellationToken.None,
            new FileDataStore(storage)).Result;

其中&#39;存储&#39;是一个本地文件夹(例如/ App_Data /文件夹),其中ASP.NET用户应具有读/写权限。