ADsOpenObject 関数 (adshlp.h)
ADsOpenObject 関数は、明示的なユーザー名とパスワードの資格情報を使用して ADSI オブジェクトにバインドします。ADsOpenObject は IADsOpenDSObject のラッパー関数であり、IADsOpenDSObject::OpenDsObject メソッドと同等です。
構文
HRESULT ADsOpenObject(
[in] LPCWSTR lpszPathName,
[in] LPCWSTR lpszUserName,
[in] LPCWSTR lpszPassword,
[in] DWORD dwReserved,
[in] REFIID riid,
[out] void **ppObject
);
パラメーター
[in] lpszPathName
種類: LPCWSTR
ADSI オブジェクトの ADsPath を指定する null で終わる Unicode 文字列。 このパラメーターのバインド文字列の詳細とコード例については、 LDAP ADsPath と WinNT ADsPath に関するページを参照してください。
[in] lpszUserName
種類: LPCWSTR
資格情報に使用するディレクトリ サービスに指定するユーザー名を指定する null で終わる Unicode 文字列。 あいまいさを避けるために、この文字列は常に "<domain\><user name>" の形式にする必要があります。 たとえば、DomainA と DomainB に信頼関係があり、両方のドメインに "user1" という名前のユーザーがいる場合、"user1" の検証に使用するドメイン ADsOpenObject を予測することはできません。
[in] lpszPassword
種類: LPCWSTR
資格情報に使用するディレクトリ サービスに指定するパスワードを指定する null で終わる Unicode 文字列。
[in] dwReserved
型: DWORD
バインディング オプションを定義するために使用されるプロバイダー固有の認証フラグ。 詳細については、「 ADS_AUTHENTICATION_ENUM」を参照してください。
[in] riid
種類: REFIID
このオブジェクトで要求されたインターフェイスのインターフェイス識別子。
[out] ppObject
型: VOID**
要求されたインターフェイスへのポインターへのポインター。
戻り値
種類: HRESULT
このメソッドは、次のような標準 の HRESULT 戻り値をサポートしています。
詳細については、「 ADSI エラー コード」を参照してください。
注釈
この関数は、ユーザーの資格情報を検証するためだけに使用しないでください。
C/C++ クライアントは、適切なディレクトリ サービスの資格情報として指定されたユーザー名とパスワードを使用して、 ADSOpenObject ヘルパー関数を呼び出して ADSI オブジェクトにバインドします。 lpszUsername と lpszPassword が NULL で、ADS_SECURE_AUTHENTICATIONが設定されている場合、ADSI は呼び出し元スレッドのセキュリティ コンテキストを使用してオブジェクトにバインドします。これは、アプリケーションが実行されているユーザー アカウントのセキュリティ コンテキスト、または呼び出し元スレッドが偽装するクライアント ユーザー アカウントのセキュリティ コンテキストです。
ADsOpenObject 関数に渡される資格情報は、 にバインドされた特定のオブジェクトでのみ使用され、呼び出し元スレッドのセキュリティ コンテキストには影響しません。 つまり、次の例では、 ADsOpenObject の呼び出しでは 、ADsGetObject の呼び出しとは異なる資格情報が使用されます。
HRESULT hr;
IADs *padsRoot1;
IADs *padsRoot2;
hr = ADsOpenObject(L"LDAP://rootDSE",
pwszUsername,
pwszPassword,
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(LPVOID*)&padsRoot1);
hr = ADsGetObject(L"LDAP://rootDSE",
IID_IADs,
(LPVOID*)&padsRoot2);
WinNT: プロバイダーを操作するには、 lpszUsername を次のいずれかの文字列として渡します。
- ユーザー アカウントの名前、つまり "jeffsmith" です。
- Windows スタイルのユーザー名。つまり、"Fabrikam\jeffsmith" です。
- ユーザー アカウントの名前 ("jeffsmith" など)。 ユーザー名を単独で使用するには、dwReserved パラメーターで ADS_SECURE_AUTHENTICATION フラグのみを設定する必要があります。
- 以前のバージョンの Windows からのユーザー パス ("Fabrikam\jeffsmith" など)。
- "CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=Com" などの識別名。 DN を使用するには、 dwReserved パラメーターを 0 にするか、 ADS_USE_SSL フラグを含める必要があります。
- "" などのjeffsmith@Fabrikam.comユーザー プリンシパル名 (UPN)。 UPN を使用するには、ターゲット ユーザー オブジェクトの userPrincipalName 属性に適切な UPN 値を割り当てます。
次のコード例は、要求されたユーザー資格情報を使用してディレクトリ サービス オブジェクトにバインドする方法を示しています。
IADs *pObject;
LPWSTR szUsername = NULL;
LPWSTR szPassword = NULL
HRESULT hr;
// Insert code to securely retrieve the user name and password.
hr = ADsOpenObject(L"LDAP://CN=Jeff,DC=Fabrikam,DC=com",
"jeffsmith",
"etercespot",
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(void**) &pObject);
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | adshlp.h |
Library | Activeds.lib |
[DLL] | Activeds.dll |