Моя привязка WCF net.pipe не работает, когда сервер работает без повышенных прав. Этот блог помог мне найти ответ - http://weblogs.thinktecture.com/cweyer/2007/12/dealing-with-os-privilege-issues-in-wcf-named-pipes-scenarios.html
Итак, я добавил привилегию SeCreateGlobalPrivilege соответствующему пользователю без прав администратора, но теперь мне нужно программно включить эту привилегию в .NET
Теперь в Интернете есть несколько примеров, как это сделать в .NET, но все они по существу переписывают простой C-код в C # с помощью P / Invoke.
Я хочу знать, как это сделать, используя специальные типы систем .NET, такие как ObjectSecurity, Privilege и т. Д., Чтобы мой код не выполнял P / Invoke - пусть системный код сделает это за меня.
Возможно ли это?
Спасибо.
EDIT1
Что заставляет меня думать, что это возможно? Ну, я искал использование API AdjustTokenPrivileges P / Inovke в .NET с помощью Reflector и обнаружил, что есть метод ObjectSecurity.Persist, который в конечном итоге вызывает этот P / Invoke. Далее, у этого ObjectSecurity есть один защищенный конструктор, что означает, что код, не относящийся к MS, может извлечь его из него и вызвать этот метод.
Таким образом, представляется возможным использование безопасного для типов кода .NET (т.е. без отражения).