.net Google目录API:未获得授权

.net Google目录API:未获得授权,.net,google-api,google-directory-api,.net,Google Api,Google Directory Api,显然-如果我错了,请纠正我-要正确使用Google API/授权,您需要指定以@developer.gserviceaccount.com结尾的服务帐户电子邮件 但是,此帐户将无法访问我要向/从中添加/列出/删除用户的域。我想这就是我未经授权的请求的原因 如何授予此帐户对要影响更改的域的权限?或者-我应该在授权期间列出不同的帐户吗?如果是的话,我该怎么做?因为当我指定一个有权限的域帐户时,我得到了无效的授权 任何帮助都将不胜感激。谢谢 代码如下: String szDomainN

显然-如果我错了,请纠正我-要正确使用Google API/授权,您需要指定以@developer.gserviceaccount.com结尾的服务帐户电子邮件

但是,此帐户将无法访问我要向/从中添加/列出/删除用户的域。我想这就是我未经授权的请求的原因

如何授予此帐户对要影响更改的域的权限?或者-我应该在授权期间列出不同的帐户吗?如果是的话,我该怎么做?因为当我指定一个有权限的域帐户时,我得到了无效的授权

任何帮助都将不胜感激。谢谢

代码如下:

        String szDomainName = "testdomainname.com";
        String szServiceAccount = "google_generated_user@developer.gserviceaccount.com";

        var certificate = new X509Certificate2(@"Google_Key.p12", "notasecret", X509KeyStorageFlags.Exportable);

        ServiceAccountCredential.Initializer ServiceAccountCredentialInitializer = new ServiceAccountCredential.Initializer(szServiceAccount);
        ServiceAccountCredentialInitializer.FromCertificate(certificate);
        ServiceAccountCredentialInitializer.Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser };

        ServiceAccountCredential credential = new ServiceAccountCredential(ServiceAccountCredentialInitializer);

        // Create the service.
        BaseClientService.Initializer ServiceInitializer = new BaseClientService.Initializer();
        ServiceInitializer.HttpClientInitializer = credential;
        ServiceInitializer.ApplicationName = "List Users";
        var service = new DirectoryService(ServiceInitializer);

        var listReq = service.Users.List();
        listReq.Domain = szDomainName;

您仍然需要设置您将代表的服务帐户用户。即使您正在使用服务帐户,您仍然需要设置服务帐户用户,即您所代表的域中的用户

您可以在“其他”部分中看到此示例。

就是那条线。setServiceAccountUseruser@example.com.