"cpp/win32/internet trust zone"의 두 판 사이의 차이
Redjini WiKi
(차이 없음)
|
2017년 11월 20일 (월) 11:47 기준 최신판
- CPP > Win32 APIcpp/win32/api (6)
- CPP > Win32 > Firewal(방화벽)cpp/win32/firewal
- CPP > Win32 > Internet 신뢰 사이트cpp/win32/internet trust zone
- CPP > Win32 > UAC 확인cpp/win32/uac
- CPP > Win32 > Windows 32/64 확인cpp/win32/windows 32 64 check
- CPP > Win32 > Windows Message Codecpp/win32/windows message code (3)
- CPP > Win32 > WinINet 오류코드cpp/win32/wininet error code
- CPP > Win32 > WinINet(HTTP)cpp/win32/wininet http
- CPP > win32 > 레지스트리 등록cpp/win32/레지스트리 등록
- CPP > win32 > 프로세스 파일 경로cpp/win32/프로세스 파일 경로
인터넷 옵션 > 보안 > 신뢰할 수 있는 사이트에 사이트 등록하기
소스
BOOL Util::SetTrustZone(CComBSTR lpszDomain){
CComPtr<IInternetSecurityManager> pSM;
CComPtr<IInternetZoneManager> pZM;
DWORD dwEnum = 0;
DWORD dwZoneCount = 0;
DWORD dwZone = 0;
BOOL bResult = FALSE;
ZONEATTRIBUTES zone;
memset(&zone, 0, sizeof(ZONEATTRIBUTES));
// InternetSecurityManager 인터페이스
if( CoCreateInstance(CLSID_InternetSecurityManager , NULL, CLSCTX_ALL, IID_IInternetSecurityManager, (void**)&pSM) != S_OK){
return FALSE;
}
// InternetZoneManager 인터페이스
if( CoCreateInstance(CLSID_InternetZoneManager , NULL, CLSCTX_ALL, IID_IInternetZoneManager , (void**)&pZM) != S_OK){
return FALSE;
}
// Zone Enumerator 초기화
pZM->CreateZoneEnumerator (&dwEnum, &dwZoneCount, 0);
// URLZONE_LOCAL_MACHINE = 0, my computer 영역
// URLZONE_INTRANET = 1, local intranet(로컬 인트라넷) 영역
// URLZONE_TRUSTED = 2, trusted sites(신뢰할 수 잇는 사이트) 영역
// URLZONE_INTERNET = 3, internet(인터넷) 영역
// URLZONE_UNTRUSTED = 4, restricted sites (제한된 사이트) 영역
pZM->GetZoneAt (dwEnum, URLZONE_TRUSTED, &dwZone);
pZM->GetZoneAttributes (dwZone, &zone);
//기본 HTTPS만 등록해야하는 제약조건 삭제
if(zone.dwFlags & ZAFLAGS_REQUIRE_VERIFICATION){
zone.dwFlags &=~ZAFLAGS_REQUIRE_VERIFICATION;
}
pZM->SetZoneAttributes(dwZone, &zone);
//도메인 등록
if(pSM->SetZoneMapping(URLZONE_TRUSTED, lpszDomain, SZM_CREATE) == S_OK){
bResult = TRUE;
}else{
bResult = FALSE;
}
if(dwEnum != 0){
pZM->DestroyZoneEnumerator(dwEnum);
}
}