Хранимая процедура SQL CLR для запроса активного каталога - PullRequest
3 голосов
/ 26 октября 2010

Мне нужно получить некоторую информацию от пользователей в базе данных, которая хранится в Active Directory, у меня есть простая функция, чтобы сделать это:

using (DirectoryEntry de = new DirectoryEntry("LDAP://ANYGIVENDOMAIN"))
{
    using (DirectorySearcher adSearch = new DirectorySearcher(de))
    {
        adSearch.Filter = "(sAMAccountName=jdoe)";                  
        SearchResult adSearchResult = adSearch.FindOne();

        StringBuilder sb = new StringBuilder();
        sb.AppendLine(adSearchResult.Properties["displayname"][0].ToString());
        sb.AppendLine(adSearchResult.Properties["givenName"][0].ToString());
        sb.AppendLine(adSearchResult.Properties["objectSid"][0].ToString());
        sb.AppendLine(adSearchResult.Properties["description"][0].ToString());
        sb.AppendLine(adSearchResult.Properties["objectGUID"][0].ToString());
    }
}

Запуск из WinForm делать как я хочуно в типе проекта SQL Server я не могу добавить пространство имен System.DirectoryServices к ссылкам.

Кто-нибудь знает почему?

С уважением

JE

1 Ответ

2 голосов
/ 26 октября 2010

См .: Поддерживаемые библиотеки .NET Framework

Неподдерживаемые библиотеки все еще можно вызывать из управляемых хранимых процедур, триггеров, пользовательских функций, пользовательских типов ипользовательские агрегаты.Неподдерживаемая библиотека должна быть сначала зарегистрирована в базе данных SQL Server с помощью оператора CREATE ASSEMBLY, прежде чем ее можно будет использовать в вашем коде.Любая неподдерживаемая библиотека, зарегистрированная и запущенная на сервере, должна быть проверена и проверена на безопасность и надежность.

Например, пространство имен System.DirectoryServices не поддерживается.Вы должны зарегистрировать сборку System.DirectoryServices.dll с разрешениями UNSAFE, прежде чем вы сможете вызывать ее из своего кода.Разрешение UNSAFE необходимо, поскольку классы в пространстве имен System.DirectoryServices не соответствуют требованиям для SAFE или EXTERNAL_ACCESS.Для получения дополнительной информации см. Ограничения модели программирования интеграции CLR и Защита доступа к коду интеграции CLR .

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