본문 바로가기
프로그래밍/C++

신뢰 할 수 있는 사이트에 자동등록하기

by 건우아빠유리남편 2012. 3. 27.
반응형

 

ActiveX 배포 시 해당 사이트를 신뢰 할 수 있는 사이트로 등록해야 할 경우가 있다. 아래의 함수 이용

신뢰 할 수 있는 사이트에 자동등록하기

 

 

인터넷 익스플로러의 신뢰할 수 있는 사이트에 웹사이트를 등록하는 소스코드 입니다.

// ------------------------------------------------------------------------------------------------

/*

DESC: 신뢰사이트 등록

PARAM: [IN] LPCTSTR lpszDomain - 도메인 URL

() www.naver.com, 211.102.3.11

RETURN:

TRUE - 성공

FALSE - 실패

*/

// ------------------------------------------------------------------------------------------------

BOOL _SetTrustZone(LPCTSTR lpszDomain)

{

USES_CONVERSION;

HRESULT hr;

IInternetSecurityManager* pSM;

IInternetZoneManager* pZM;

DWORD dwEnum, dwZoneCount, dwZone;

ZONEATTRIBUTES za;

int nIndex = URLZONE_TRUSTED;

BOOL bResult = FALSE;

hr = CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_ALL,
IID_IInternetSecurityManager,
(void**)&pSM);

if(FAILED(hr))

{

return FALSE;

}

hr = CoCreateInstance(CLSID_InternetZoneManager, NULL, CLSCTX_ALL, IID_IInternetZoneManager,

(void**)&pZM);

if(FAILED(hr))

{

return FALSE;

}

dwEnum = 0;

pZM->CreateZoneEnumerator(&dwEnum, &dwZoneCount, 0);

// nIndex URLZONE_TRUSTED(2)일 경우가 신뢰할 수 있는 사이트

pZM->GetZoneAt(dwEnum, nIndex, &dwZone);

pZM->GetZoneAttributes(dwZone, &za);

// 신뢰할 수 있는 사이트는 기본적으로 https를 요구하기 때문에 이 속성을 제거

if(za.dwFlags & ZAFLAGS_REQUIRE_VERIFICATION)

{

za.dwFlags &=~ZAFLAGS_REQUIRE_VERIFICATION;

}

// 현재보안 설정이 낮음이 아닐경우 낮음으로 설정

/*

if(za.dwTemplateCurrentLevel != 0x10000)

{

za.dwTemplateCurrentLevel = 0x10000;

za.dwTemplateMinLevel = 0x10000;

}

*/

pZM->SetZoneAttributes(dwZone, &za);

// 해당도메인을 등록 (형변환은 USES_CONVERSION을 이용)

hr = pSM->SetZoneMapping(nIndex, T2OLE(lpszDomain), SZM_CREATE);

if(FAILED(hr))

{

// 실패 오류에 대한 메시지 처리 등등

bResult = FALSE;

}

else

{

bResult = TRUE;

}

if(dwEnum != 0)

pZM->DestroyZoneEnumerator(dwEnum);

pSM->Release();

pZM->Release();

return bResult;

}

반응형

댓글