Как это реализовать

программирование C# .net asp.net

У меня есть ASP.net страничка которая ходит по папке и папкам внутри нее, ну там файлы внутри лежат итп.

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

т.к IIS не эмулирует пользователя а ходит по папке своим юзером ASPNET, но при этом может смотреть Windows Identity пользователя, мне нужно получить список групп и пользователей которые имеют права чтения папки/файла...

Нашел следующий код, но он мне не думаю что сильно поможет:

NTAccount acc = new NTAccount("administrators");
SecurityIdentifier secId = acc.Translate(typeof(SecurityIdentifier))
as SecurityIdentifier;
DirectoryInfo dInfo = new DirectoryInfo("c:\\");
DirectorySecurity dSecurity = dInfo.GetAccessControl();
AuthorizationRuleCollection rules = dSecurity.GetAccessRules(
true,
true,
typeof(SecurityIdentifier) );
foreach(FileSystemAccessRule ar in rules)
{
if(secId.CompareTo(ar.IdentityReference as SecurityIdentifier) == 0)
Console.WriteLine(ar.FileSystemRights);
}

У файлов и папок есть метод что то типа GetACLRights но не думаю что это то что нужно...
Ответы:
Все нашел :))))))))))))))))))))))))


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.