Запрос Active Directory из веб-приложения C # - хранение разрешений в SQL - PullRequest
1 голос
/ 17 сентября 2009

У нас есть специальное веб-приложение на c #, которое хранит дополнительную информацию о физической структуре папок. Каждая папка или файл в общей папке компании имеет запись в sql. Мы используем веб-приложение для поиска этих записей. Я хочу хранить разрешения активного каталога физических путей в отношении записей SQL.

  1. Каков предпочтительный метод запроса AD в c # (.net 3.5)?

  2. Сохраняю ли я дружественную группу / имя пользователя или SID?

  3. Является ли SID уникальным?

  4. Изменится ли SID, если пользователь переместится в другое место (другое подразделение)?

Идея в том, что запрос может выглядеть следующим образом ...

SELECT CompanyDoc.Name, CompanyDoc.Path

FROM   CompanyDoc

INNER JOIN Permission ON CompanyDoc.ID = Permissions.CompanyDocID

WHERE CompanyDoc.MetaData = @serach param

AND   Permission.SID IN ( @userSidList )

GROUP BY CompanyDoc.Name, CompanyDoc.Path

Ответы [ 3 ]

2 голосов
/ 17 сентября 2009

1) Вы не можете запросить AD, чтобы получить разрешения для файла. Вы должны запросить файловую систему для этого. Вы можете получить пользователей и роли, запрашивая AD .

2) СИД.

3) Да, для пользователей AD это так. Для специальных встроенных учетных записей они будут доступны всем системам.

4) Нет.

Кстати, сама концепция вашего приложения пугает меня. Похоже, вам, возможно, придется вернуться к чертежной доске.

0 голосов
/ 17 сентября 2009

Доступна отличная статья в журнале MSDN, в которой показано, как запрашивать пользователей и группы и управлять ими в .NET 3.5 Active Directory (пространство имен System.DirectoryServices.AccountManagement):

Управление принципами безопасности каталогов в .NET Framework 3.5

Это должно помочь вам начать.

Марк

0 голосов
/ 17 сентября 2009

Я не могу ответить на все ваши вопросы, но по пункту 1. попробуйте посмотреть LINQ To AD Это хороший способ общения с Active Directory из C #, поскольку вы уже находитесь в .NET 3.5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...