Описание: Установить новый пароль пользователю. Поведение зависит от того, кто вызывает метод:
- Если
id(пользователь, которому меняют пароль) совпадает с текущим авторизованным пользователем и переданold_password— это обычная смена собственного пароля: старый пароль проверяется, новый — проверяется на соответствие политике паролей и на повтор из истории паролей. - Если
idсовпадает с текущим пользователем, ноold_passwordне передан — запрос будет отклонён (менять свой пароль без указания старого нельзя). - Если
id— другой пользователь, требуется правоupdateна этого пользователя (например, у администратора) — старый пароль в этом случае не проверяется.
Если у сессии, из которой меняют пароль, был статус "требуется смена/установка пароля" (см. status в ответе метода Login), после успешной смены статус сессии переводится в "активна".
🌐 HTTP-информация
- Метод:
POST - URL:
/api/security/SetPassword - Headers:
Content-Type: application/jsonAuthorization: <UserSessionToken>
📦 Тело запроса (Request Body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
principal | Guid | Да | ID пользователя, которому устанавливается пароль |
password | string | Да | Новый пароль |
old_password | string | Нет | Текущий (старый) пароль — обязателен при смене собственного пароля |
is_change_password_at_next_login | bool | Нет | Если true — пароль сразу помечается как просроченный, и при следующем входе будет предложено сменить его. По умолчанию false |
is_two_factor_authentication_enabled | bool | Нет | Если передано — включает или выключает двухфакторную аутентификацию для пользователя. При выключении также сбрасывается признак подключённого TOTP-приложения |
Пример JSON-тела:
{
"principal": "622dddbb-2db2-433d-9d3c-89f31ea22e64",
"password": "NewP@ssw0rd",
"old_password": "OldP@ssw0rd"
}
📤 Тело ответа (Response Body)
Метод ничего не возвращает (void, HTTP 200 OK без тела в случае успеха).