Поделиться через


Проверка подлинности (ADSI)

В ADSI учетные данные, состоящие из имени пользователя и пароля, используются для предоставления или ограничения доступа к объектам в службе каталогов. Функция ADsGetObject использует учетные данные вызывающего потока для проверки подлинности. Функцию ADsOpenObject и метод IADsOpenDSObject::OpenDSObject можно использовать для указания учетных данных, отличных от учетных данных вызывающего потока. Если объект привязан к пользователю, прошедшим проверку подлинности, пользователь может получить доступ к объекту в соответствии с требованиями безопасности базовой службы каталогов.

Примечание.

Функция ADsOpenObject и метод IADsOpenDSObject::OpenDSObject не следует использовать для проверки учетных данных пользователя.

Внимание

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

В следующем примере кода показано, как использовать метод OpenDSObject для проверки подлинности пользователя.

Dim MyNamespace As IADsOpenDSObject
Dim X
oUsername=GetUsernameFromSecureConfig() ' Get the username from a secure location (not shown)
oPassword=GetPasswordFromSecureConfig() ' Get the password from a secure location (not shown)

OnError GoTo CleanuUp
 
Set MyNamespace = GetObject("LDAP:")

' For authentication, pass a variable for the user name and password to be used for 
' authentication. For security reasons, it is recommended that you use the ADS_SECURE_AUTHENTICATION flag.
' 
Set X = MyNamespace.OpenDSObject(DN, oUserName, oPassword, ADS_SECURE_AUTHENTICATION)     

CleanUp:
    MsgBox ("An error has occurred.")
    Set MyNamespace = Nothing
    Set X = Nothing