J'essaie de mettre à jour un utilisateur à l'aide des services d'annuaire Google, mais une erreur: "400 mot de passe invalide". Voici le code que j'utilise:Mot de passe de mise à jour du service d'annuaire Google 400 Mot de passe invalide
var certificate = new X509Certificate2(certificatePath, "notasecret",
X509KeyStorageFlags.Exportable);
var sai = new ServiceAccountCredential.Initializer(clientId)
{
Scopes = new[]
{
DirectoryService.Scope.AdminDirectoryUser,
DirectoryService.Scope.AdminDirectoryDomain
}
}.FromCertificate(certificate);
sai.User = "[email protected]";
ServiceAccountCredential credential = new ServiceAccountCredential(sai);
var directoryService = new DirectoryService(new BaseClientService.Initializer
{
ApplicationName = "Admin",
HttpClientInitializer = credential
});
User user = directoryService.Users.Get("[email protected]").Execute();
user.Password = "[email protected]";
directoryService.Users.Update(user, "[email protected]").Execute(); // Error 400 Invalid password
La dernière ligne jette l'erreur. Obtenir les utilisateurs existants fonctionne par la manière:
var listRequest = _directoryService.Users.List();
listRequest.Domain = "domain.com";
listRequest.MaxResults = 500;
var results = listRequest.Execute(); // Works fine!
Qu'est-ce que je fais mal?
Votre objet 'User' a-t-il un' HashFunction' non vide? Note des docs: "Si hashFunction est spécifié, le mot de passe doit être une clé de hachage valide." –
J'ai négligé cela dans la documentation. Je vais jeter un coup d'oeil lundi prochain. –
Je n'ai pas spécifié de fonction de hachage, mais pour une raison quelconque, cela n'a pas fonctionné. En utilisant SHA1 maintenant et cela fonctionne bien. –