| Предыдущий | Следующий |
| ERROR_BAD_VALIDATION_CLASS | ERROR_NO_SECURITY_ON_OBJECT |
ERROR_BAD_TOKEN_TYPE
Операция получила токен доступа неверного типа
Windows явно различает TokenPrimary и TokenImpersonation. Контекст безопасности процесса представлен первичным токеном, а поток может использовать токен олицетворения для работы в другом контексте безопасности. Многие API безопасности требуют токен определённого типа. Эта ошибка означает, что дескриптор токена может быть действительным и доступным для запросов, но семантически не подходит для выполняемой операции.
Запросите TokenType с помощью GetTokenInformation в точке передачи дескриптора в завершившийся ошибкой API. Проследите, где токен был создан или дублирован: DuplicateTokenEx может запросить первичный токен или токен олицетворения, а серверное олицетворение естественным образом создаёт токен потока. Если используется токен олицетворения, проверьте также уровень олицетворения. Не пытайтесь устранить проблему приведением структур или повторным использованием дескриптора токена в другой роли; продублируйте или получите токен нужного типа с правами доступа, требуемыми последующей операцией.
Что проверить
- Запросите TokenType, а для токенов олицетворения — TokenImpersonationLevel.
- Проследите API, создавший или дублировавший дескриптор токена.
- Получите токен нужного типа вместо повторного использования действительного дескриптора в неверной роли.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.