次の方法で共有


IADsUser::SetPassword メソッド (iads.h)

IADsUser::SetPassword メソッドは、ユーザー パスワードを指定した値に設定します。 LDAP プロバイダーの場合、IADsUser::SetPassword が呼び出される前に、IADs::SetInfo を使用して、ユーザー アカウントが作成され、基になるディレクトリに格納されている必要があります。

ただし、WinNT プロバイダーを使用すると、 SetInfo を呼び出す前に、新しく作成したユーザー オブジェクトにパスワードを設定できます。 これにより、ユーザー アカウントを作成する前に、システム パスワード ポリシーに準拠するパスワードを作成できます。

構文

HRESULT SetPassword(
  BSTR NewPassword
);

パラメーター

NewPassword

新しいパスワードを含む BSTR

戻り値

このメソッドは、S_OKを含む標準の戻り値 サポートします。 その他の戻り値については、「 ADSI エラー コード」を参照してください。

解説

Active Directory の LDAP プロバイダーは、3 つのプロセスのいずれかを使用してパスワードを設定します。iPlanet などのサードパーティの LDAP ディレクトリでは、このパスワード認証プロセスは使用されません。 方法は、ネットワーク構成によって異なる場合があります。 パスワードの設定を試みる順序は次のとおりです。

  • 最初に、LDAP プロバイダーは 128 ビット SSL 接続経由で LDAP の使用を試みます。 LDAP SSL が正常に動作するには、LDAP サーバーに適切なサーバー認証証明書がインストールされている必要があり、ADSI コードを実行しているクライアントは、それらの証明書を発行した機関を信頼する必要があります。 サーバーとクライアントの両方が 128 ビット暗号化をサポートしている必要があります。
  • 次に、SSL 接続が失敗した場合、LDAP プロバイダーは Kerberos の使用を試みます。
  • 3 番目に、Kerberos が失敗した場合、LDAP プロバイダーは NetUserSetInfo API 呼び出しを試みます。 以前のリリースでは、ADSI は、IADsOpenDSObject::OpenDSObject または ADsOpenObject の呼び出しで指定されたセキュリティ コンテキストではなく、スレッドが実行されていたセキュリティ コンテキストで NetUserSetInfo を呼び出しました。 以降のリリースでは、これは変更され、ADSI LDAP プロバイダーが NetUserSetInfo を呼び出すときに OpenDSObject 呼び出しで指定されたユーザーを偽装するようにしました。
Active Directory では、このメソッドを使用して パスワード を設定するには、呼び出し元にパスワードのリセットの拡張制御アクセス権が必要です。

次のコード例は、ユーザー パスワードを設定するアクセス許可がある場合に設定する方法を示しています。

Dim usr As IADsUser
Dim szPassword As String
On Error GoTo Cleanup

' Add code to securely get the password.

Set usr = GetObject("LDAP://MyLdapSvr/CN=JeffSmith,DC=Fabrikam")
usr.SetPassword szPassword

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

次のコード例は、ユーザー パスワードを設定するアクセス許可がある場合に設定する方法を示しています。

HRESULT SetPassword(IADsUser *pUser, BSTR password)
{
    HRESULT hr=S_OK;
    if(!pUser) { return E_FAIL;}
    hr = pUser->SetPassword(password);
    if (hr == S_OK) printf("User password has been set");
    pUser->Release();
    return hr;
}

要件

   
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー iads.h
[DLL] Activeds.dll

関連項目

ADSI エラー コード

IADs::SetInfo

IADsMembers

IADsServiceOperations

IADsUser

IADsUser プロパティ メソッド

NetUserSetInfo