| Предыдущий | Следующий |
| ERROR_INVALID_GROUP_ATTRIBUTES | ERROR_CANT_OPEN_ANONYMOUS |
ERROR_BAD_IMPERSONATION_LEVEL
ERROR_BAD_IMPERSONATION_LEVEL (1346, 0x00000542) означает, что токен клиента не предоставляет уровень олицетворения, необходимый для операции. Проблема заключается в разрешённых возможностях токена, а не просто в наличии токена.
Уровни олицетворения определяют, что сервер может делать
SecurityIdentification позволяет серверу исследовать идентичность и привилегии клиента для принятия решений о доступе, но не позволяет действовать от имени клиента. SecurityImpersonation разрешает локальное олицетворение, тогда как SecurityDelegation может поддерживать действия от имени клиента в удалённых системах. Анонимные токены и токены уровня идентификации нельзя использовать там, где требуется настоящее олицетворение.
Что следует проверить
- Прочитайте
TokenImpersonationLevelсGetTokenInformationдля фактически используемого токена. - Для именованных каналов, RPC, DDE или COM проверьте параметры безопасности клиента и сервера, задающие запрашиваемый уровень.
- Не подставляйте молча собственную идентичность службы вместо идентичности клиента без явного решения авторизации: это может выполнить работу с более широкими правами, чем предполагалось.
- Обрабатывайте случай, когда доступно только исследование идентичности, а запрошенная работа требует олицетворения.
См. документацию Microsoft по уровни имперсонации и ImpersonateLoggedOnUser.
Нужно найти другой код? Найти другой код состояния или ошибки.
