Проверьте разрешения пользователя
У меня есть приложение, работающее на сервере, которое принимает имя пользователя и путь к файлу. Идея проверить, может ли пользователь прочитать файл (целевой пользователь не является тем же пользователем, который запускает программу).
Так как проверить разрешения на чтение для конкретного пользователя?
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