2017-06-09 5 views
0

Ich versuche, einen Nutzer mithilfe der Google Directory-Dienste zu aktualisieren, erhalte jedoch eine Fehlermeldung: "400 Ungültiges Passwort". Hier ist der Code, den ich verwende:Passwort für die Aktualisierung des Google-Verzeichnisdienstes 400 Ungültiges Passwort

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 

Die letzte Zeile wirft den Fehler. Erste vorhandene Benutzer funktioniert durch die Art und Weise:

var listRequest = _directoryService.Users.List(); 
listRequest.Domain = "domain.com"; 
listRequest.MaxResults = 500; 
var results = listRequest.Execute(); // Works fine! 

Was mache ich falsch?

+1

Hat Ihr 'User' Objekt eine nicht leere' HashFunction'? Hinweis aus der Dokumentation: "Wenn eine hashFunction angegeben ist, muss das Passwort ein gültiger Hash-Schlüssel sein." –

+0

Ich habe das in der Dokumentation übersehen. Ich werde nächsten Montag nachsehen. –

+0

Ich habe keine Hash-Funktion angegeben, aber aus irgendeinem Grund hat es nicht funktioniert. Mit SHA1 jetzt und es funktioniert gut. –

Antwort

0

Haben Sie ohne Sonderzeichen versucht, um zu testen? Vielleicht gibt es ein paar Probleme mit der Kodierung. Google fordert nur ein Minimum an Zeichen an.

Auf der anderen Seite empfehlen die API, vor dem Hochladen mit einem Hash zu verschlüsseln.

The user's password value is required when creating a user account. It is optional when updating a user and should only be provided if the user is updating their account password. A password can contain any combination of ASCII characters. A minimum of 8 characters is required. The maximum length is 100 characters. We recommend sending the password property value as a base 16 bit, hexidecimal-encoded hash value. If a hashFunction is specified, the password must be a valid hash key.

The password value is never returned in the API's response body.

+1

SHA1-Hash-Funktion jetzt verwenden und es funktioniert, danke. –

Verwandte Themen