Хочу при старте сервиса проверять, стоит ли у его аккаунта галка Trusted for Delegation. Если галка не стоит, половина функций работать не будет, следовательно сервер можно остановить. (Или по крайней мере, ругнуться в EventLog)
Возник вопрос,как это проверить. Можно конечно вычитать атрибут userAccountControl из объекта Computer машины на которой работает сервис. Если там стоит соотв. бит, то все в порядке. Но я боюсь, что здесь могут быть проблемы с репликацией. (я читаю с одного DC и там этого бита нет, а винда бы читала с другого DC, где он уже установлен.) В связи с этим вопрос, а можно ли проверить наличие этого бита другим способом. Думал, если взять свой токен (ImpersonateSelf), потом сделать DuplicateToken с SecurityDelegation а потом вызвать GetTokenInformation с кодом TokenImpersonationLevel. Если вернул SecurityDelegation, значит все в порядке. К сожалению, этот подход не работает. И это вобщем-то, правильно.
Жду ваших советов. Спасибо.