2014-12-10 5 views
-1

В моих программах я хочу проверить, имеет ли имя пользователя разрешение на папку в окнах. Но это имя пользователя может не быть пользователем, который в настоящее время регистрируется на пользователе. Какие окна предоставляют аналогичный API?Проверьте, имеет ли имя пользователя разрешение на папку на окнах

+0

Обычно вы хотите сделать это, просто сделав доступ. Все остальное зависит от условий гонки. Используйте LogonUser (или LsaLogonuser) для входа пользователя в систему, а затем ImpersonateUser, чтобы выдавать себя за них и выполнять тест (и RevertToSelf, когда вы закончите). –

ответ

2

Вы ищете AccessCheck():

Функция AccessCheck определяет, предоставляет ли дескриптор безопасности определенного набора прав доступа к клиенту, идентифицированной маркер доступа.

Однако, вам нужно маркер доступа для нужного пользователя, например, от LogonUser() или аналогичной функции. Нет функции API, в которую вы можете передать строку имени пользователя.

0

Спасибо, Джерри Коффин и Реми Лебо. Я нашел решение. Посмотрите на ссылку http://msdn.microsoft.com/en-us/library/windows/desktop/aa446637(v=vs.85).aspx В этом примере вы можете получить разрешение пользователя только по имени пользователя и разрешению папки. И поэтому я могу проверить, имеет ли имя пользователя разрешение на папку.