Google Directory API и сброс пароля пользователя через.net
Что ж, после большой помощи от постов на этом и других сайтах я наконец-то подключил свое приложение.net и аутентифицировался к моему экземпляру приложений Google! Ура! Я могу искать и получать информацию о пользователях к своему сердцу, используя служебную учетную запись, доступ к которой мне делегирован.
Тем не менее, я не могу обновить пароль пользователя. Я не получаю ни ошибок, ни ответа, ничего - это просто не работает.
Вот что я получил до сих пор, как я уже сказал, я получаю отличные данные пользователя, просто не могу изменить этот пароль!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography.X509Certificates;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Admin.Directory.directory_v1;
using Google.Apis.Admin.Directory.directory_v1.Data;
using Google.Apis.Admin.Directory;
String serviceAccountEmail = "mybiglongserviceaccountemail@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@"c:\path\to\my\p12key.p12", "mysecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
User="myadminuser@mydomain.com",
Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser }
}.FromCertificate(certificate));
var dirservice = new DirectoryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyProjectName",
});
User user = dirservice.Users.Get("username@mydomain.com").Execute();
Console.WriteLine(" email: " + user.PrimaryEmail);
Console.WriteLine(" last login: " + user.LastLoginTime);
user.Password = "newpassword";
dirservice.Users.Update(user, "username@mydomain.com");
Я ожидаю, что последние две строки изменят пароль пользователя, но это не так.
Любая помощь здесь будет высоко ценится! Спасибо!
1 ответ
Не берите в голову!
Я забыл.Execute()
это работает с.execute()
user.Password = "newpassword";
dirservice.Users.Update(user, "username@mydomain.com").Execute();
Спасибо!
На тот случай, если кто-то захочет написать полную информацию о настройке проекта, консоли разработчика, учетной записи службы и т. Д., Я прямо здесь!