2014-10-16 3 views
0

Ну, после большой помощи из сообщений на этом сайте и других, я, наконец, подключил и подключил мое приложение .net к моему экземпляру Google Apps! Ура! Я могу искать и получать информацию о пользователях в моих сердцах, используя учетную запись службы, на которую я делегировал доступ.API Google Directory и сбросить пароли пользователей через .net

Таким образом, я не могу обновить пароль пользователя. Я не получаю ошибок, никакого ответа, ничего - он просто не работает.

Вот что я получил до сих пор, как я уже сказал, я получаю подробные сведения о пользователе, просто не могу изменить этот пароль!

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 = "[email protected]"; 
var certificate = new X509Certificate2(@"c:\path\to\my\p12key.p12", "mysecret", X509KeyStorageFlags.Exportable); 


ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail) 
{ 
    User="[email protected]", 

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



var dirservice = new DirectoryService(new BaseClientService.Initializer() 
{ 
    HttpClientInitializer = credential, 
    ApplicationName = "MyProjectName", 
}); 

User user = dirservice.Users.Get("[email protected]").Execute(); 
Console.WriteLine(" email: " + user.PrimaryEmail); 
Console.WriteLine(" last login: " + user.LastLoginTime); 

user.Password = "newpassword"; 
dirservice.Users.Update(user, "[email protected]"); 

Последние две строки, которые я ожидаю, изменят пароль пользователей, но это не так.

Любая помощь здесь была бы высоко оценена! Спасибо!

ответ

2

Nevermind!

Я забыл .Execute()

работает с .Execute()

user.Password = "newpassword"; 
dirservice.Users.Update(user, "[email protected]").Execute(); 

Спасибо!

В случае, если кто-то хочет получить полную запись, я сделал о том, как настроить проект, консоль разработчика, учетную запись службы и т. Д., Это прямо здесь!

http://blog.mwpreston.net/2014/10/17/google-admin-sdk-apis-and-net-integration-changing-a-users-password/

Смежные вопросы