신뢰 할 수 있는 사이트에 자동등록하기
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;
}