Проверьте разрешения пользователя

У меня есть приложение, работающее на сервере, которое принимает имя пользователя и путь к файлу. Идея проверить, может ли пользователь прочитать файл (целевой пользователь не является тем же пользователем, который запускает программу).

Так как проверить разрешения на чтение для конкретного пользователя?

2 ответа

Решение

Я не могу взять на себя ответственность за это, поскольку я гуглил это, и ответ был Джеймсом Ньютоном-Кингом, найденным здесь - Как представить учетные данные, чтобы открыть файл?


Вы хотите выдать себя за пользователя, у которого есть права на доступ к файлу.

Я рекомендую использовать такой класс - http://www.codeproject.com/KB/cs/zetaimpersonator.aspx. Он скрывает всю неприятную реализацию подражания.

using (new Impersonator("myUsername", "myDomainname", "myPassword"))
{
  string fileText = File.ReadAllText("c:\test.txt");
  Console.WriteLine(fileText);
}

Проверьте эту документацию, это может быть полезно:

http://msdn.microsoft.com/en-us/library/system.io.file.getattributes(v=vs.110).aspx

Другие вопросы по тегам