Re: FileSystemRights :(
От: Sinix  
Дата: 21.12.09 08:48
Оценка: 39 (2) +1
Здравствуйте, Пельмешко, Вы писали:

П>Просто ловить UnauthorizedAccessException счёл некошерным, стал разбираться с правами доступа...

П>И тут же упёрся в "C:\Documents and settings" (Windows7 RC)...

Это хардлинк, его можно спокойно пропустить (если придумаете как ).

Свои пять копеек:
Безопасность в windows — штука крайне своеобразная и без прочтения хотя бы соответствующей главы из windows internals туда лучше не лезть.
Предупреждаю сразу, книга читается довольно тяжело (из сравнимых по объёму — Дейт воспринимается куда легче), по крайней мере оригинал — по висте русскоязычного издания пока нет.

К сожалению, в .Net нет метода GetEffectivePermissions и гугл не знает о готовых решениях. Без него проверять очень тяжело — у потока может быть слегка урезанный токен, эффект от виртуализации (читай uac) и тыды и тыпы.
http://www.mcmcse.com/microsoft/guides/ntfs_and_share_permissions.shtml

Keep in mind that priveledges (rights) can sometimes override permissions.

ххых

Плюс, даже готовое api временами лажает (как минимум в win 2008 sp1) — вкладка "действующие разрешения" некорректно показывает разрешения, если доменный пользователь включён в локальную группу + ещё какое-то условие (так и не выяснил, предположение — owner не входит в эту группу).

Так что проще ловить исключения, уж поверьте. А ещё лучше — не ловить, а откатывать в finally (если !succeed, разумеется).

Ещё ссылок по теме:
http://www.tech-faq.com/nt-file-system-permissions.shtml
http://stackoverflow.com/questions/1281620/checking-for-directory-and-file-write-permissions-in-net
http://groups.google.co.uk/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/ef5ceaf72827c69d/208347aa99a2de3b?#208347aa99a2de3b

и по общей матчасти:
http://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook.HomePage
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.