Обновление пароля в RackSpace с использованием C#
Я просто пытаюсь изменить пароль основной учетной записи и дополнительного пользователя в RackSpaceCloud с помощью C#, но продолжаю сталкиваться с исключением UserNotAuthorized. Это странно, потому что я могу сделать что-нибудь еще без этой ошибки, сбросить ключи Api, список пользователей и идентификаторы пользователей (и т. Д.). Образец кода
net.openstack.Core.Domain.CloudIdentity cloudIdentity = new CloudIdentity()//Admin Credits
{
Username = "me",
APIKey = "blahblahblah",
};
CloudIdentityProvider cloudIdentityProvider = new CloudIdentityProvider(cloudIdentity);
cloudIdentityProvider.SetUserPassword("correctUserID", "newP@ssw0rd", cloudIdentity);
А потом я ошибаюсь, что сбивает с толку, потому что
cloudIdentityProvider.ListUsers(cloudIdentity)
cloudIdentityProvider.ResetApiKey("UserID", cloudIdentity);
Работай отлично. Любая помощь или идеи будут оценены. Да, и кстати, информация о добавлении для исключения всегда одинакова. "Невозможно аутентифицировать пользователя и получить авторизованные конечные точки службы"
1 ответ
Это ошибка. Я открыл номер 528, но пока что есть обходной путь.
var cloudIdentity = new CloudIdentity
{
Username = "{username}",
APIKey = "{api-key}"
};
var cloudIdentityProvider = new CloudIdentityProvider(cloudIdentity);
var userAccess = cloudIdentityProvider.Authenticate(cloudIdentity);
var request = new HttpRequestMessage(HttpMethod.Post, string.Format("https://identity.api.rackspacecloud.com/v2.0/users/{0}", userAccess.User.Id));
request.Headers.Add("X-Auth-Token", userAccess.Token.Id);
var requestBody = JObject.FromObject(new { user = new { username = userAccess.User.Name } });
((JObject)requestBody["user"]).Add("OS-KSADM:password", "{new-password}");
request.Content = new StringContent(requestBody.ToString(), Encoding.UTF8, "application/json");
using (var client = new HttpClient())
{
var response = client.SendAsync(request).Result;
}
Используемая идентификация в облаке должна быть администратором, если вам нужно изменить пароль другого пользователя, в противном случае не администраторы могут изменять только свой собственный пароль.