Я тестировал свое приложение, чтобы увидеть, насколько он работает при запуске пользователем, не являющимся администратором, и я обнаружил проблемы с обработкой файлов. Я получаю UnauthorizedAccessException при попытке перезаписать файл, если файл был создан администратором и администратором.Обработка файлов с пользователем, не являющимся администратором
При записи файла сначала создаю файл как .tmp-файл, а затем используйте File.Copy для перезаписывания оригинала. Создается файл .tmp, но File.Copy терпит неудачу. Мои файлы записываются в общий каталог («C: \ Documents and Settings \ All Users \ Application Data» в XP).
Что я могу сделать, чтобы все пользователи могли иметь полный контроль над файлами приложений?
Я нашел:
System.Security.AccessControl.DirectorySecurity sec =
System.IO.Directory.GetAccessControl (directory);
FileSystemAccessRule accRule = new FileSystemAccessRule (Globals.userIdentity,
FileSystemRights.FullControl, AccessControlType.Allow);
sec.AddAccessRule (accRule);
Волю делает выше в каталог, что все файлы находятся в решить эту проблему? Или мне нужно что-то сделать для каждого файла? Если да, то что это?
Edit:
пользователи без прав администратора не могут изменять файлы, созданные пользователем с правами администратора. Это не хорошо. Мне нужно, чтобы все файлы были доступны для редактирования всем пользователям. Не существует ли каких-либо разрешений, которые могут быть установлены при создании файла, который предоставит это?
Для некоторых файлов может потребоваться доступ извне приложения. Так как это так, что мне делать? –
Вы можете попробовать и перейти к папке «Данные приложения» для пользователей. По умолчанию они должны иметь доступ к этому, не будучи администратором. Вы можете получить этот путь для пользователя с помощью Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData) Это означает, что данные приложения не распространяются между пользователями. HTH. –
Данные приложения должны использоваться для всех пользователей.Вот почему я использую каталог All Users \ Application Data. Его просто то, что файлы, созданные при входе в систему как пользователь admin, не могут быть изменены пользователями, не являющимися администраторами. –