IADs::SetInfo 메서드(iads.h)
IADs::SetInfo 메서드는 ADSI 개체의 캐시된 속성 값을 기본 디렉터리 저장소에 저장합니다.
구문
HRESULT SetInfo();
반환 값
이 메서드는 성공적인 작업에 대한 S_OK 포함하여 표준 반환 값을 지원합니다. 자세한 내용은 ADSI 오류 코드를 참조하세요.
설명
IADs::P ut과 IADs::SetInfo 메서드 간의 차이점을 강조하는 것이 중요합니다. 속성 캐시에서 지정된 속성의 이전 값을 설정하거나 수정하는 반면, 후자는 속성 캐시의 변경 내용을 기본 디렉터리 저장소로 전파합니다. 따라서 IADs::SetInfo가 호출되기 전에 IADs::GetInfo(또는 IADs::GetInfoEx)가 호출되면 IADs::P ut에 의해 변경된 속성 값이 손실됩니다.
IADs::SetInfo는 네트워크를 통해 데이터를 보내므로 이 메서드의 사용을 최소화합니다. 이렇게 하면 클라이언트가 서버로 여행하는 횟수가 줄어듭니다. 예를 들어 캐시에서 영구 저장소로의 속성 변경 내용을 모두 또는 대부분 일괄 처리로 커밋해야 합니다.
이 지침은 IADs::SetInfo와 IADs::P ut 메서드의 관계에만 관련되며, 이는 IADs::P utEx 메서드와의 관계와 다릅니다.
다음 코드 예제에서는 IADs::P ut 과 IADs::SetInfo 간의 권장 관계를 보여 줍니다.
Dim obj as IADs
obj.Put(prop1,val1)
obj.Put(prop2.val2)
obj.Put(prop3.val3)
obj.SetInfo
다음 코드 예제에서는 IADs::P ut 과 IADs::SetInfo 간에 권장되지 않는 사항을 보여 줍니다.
obj.Put(prop1,val1)
obj.SetInfo
obj.Put(prop2.val2)
obj.SetInfo
obj.Put(prop3.val3)
obj.SetInfo
IADs::P utEx와 함께 사용하는 경우 IADs::SetInfo는 제어 코드(예: ADS_PROPERTY_UPDATE 또는 ADS_PROPERTY_CLEAR)에 지정된 운영 요청을 기본 디렉터리 저장소에 전달합니다.
예제
다음 Visual Basic 코드 예제에서는 IADs::SetInfo 메서드를 사용하여 사용자의 속성 값을 기본 디렉터리에 저장합니다.
Dim x as IADs
On Error GoTo Cleanup
Set x = GetObject("LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com")
'
' Update values in the cache.
'
x.Put "sn", "Smith"
x.Put "givenName", "Jeff"
x.Put "street", "1 Tanka Place"
x.Put "l", "Sammamish"
x.Put "st", "Washington"
'
' Commit changes to the directory.
x.SetInfo
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set x = Nothing
다음 C++ 코드 예제에서는 속성 캐시의 속성 값을 업데이트하고 IADs::SetInfo를 사용하여 디렉터리 저장소에 변경 내용을 커밋합니다. 간단히 하기 위해 오류 검사는 생략됩니다.
IADs *pAds NULL;
VARIANT var;
HRESULT hr = S_OK;
LPWSTR path=L"LDAP://CN=Administrator,CN=Users,DC=Fabrikam,DC=com";
hr = ADsGetObject( path, IID_IADs, (void**) pADs);
if(!(hr==S_OK)) {return hr;}
VariantInit(&var);
// Update values in the cache.
V_BSTR(&var) = SysAllocString(L"Smith");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("sn"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Jeff");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("givenName"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"1 Tanka Place");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("street"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Sammamish");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("l"), var );
VariantClear(&var);
V_BSTR(&var) = SysAllocString(L"Washington");
V_VT(&var) = VT_BSTR;
hr = pADs->Put(CComBSTR("st"), var );
VariantClear(&var);
// Commit changes to the directory store.
hr = pADs->SetInfo();
if(pADs)
pADs->Release();
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
지원되는 최소 서버 | Windows Server 2008 |
대상 플랫폼 | Windows |
헤더 | iads.h |
DLL | Activeds.dll |