Как я могу добавить URL к надежному сайту? Кажется, что там хранятся в реестре, но где точно?
Подсказки, которые я погуглил до сих пор, не были полезны.
Программа .NET будет работать локально на каждом клиенте.
Разъяснение редактирования: Я хочу сделать этот programmaticly, выполняющий код C#.
Следующее должно дать вам способ сделать это в коде ...
Он действительно находится в реестре, и он описан прямо там:
http://msdn.microsoft.com/en-us/library/ms537181%28VS.85%29.aspx
Остерегайтесь Хотя UAC в Vista. Это настоящая боль.
Для добавления новой доверенной зоны создаются ключи и папки реестра зоны по пути HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains Для каждого домена создается новый ключ с именем домена (sample.com) под ним новый ключ с субдоменом (www) и под ним новый REG_DWORD с именем схемы (http или https) значение 2 в шестнадцатеричном исчислении и все, у вас все получилось
Проверьте это решение на форумах CodeGuru.
Таким образом, этот код использует библиотеку COM, библиотеку, которую, как вы сказали, вы не хотели бы избегать. Однако в этой ситуации нет никакого обходного пути. Также следует упомянуть, что этот код написан на C ++, так как тот, кто его написал, CorithMartin , перенес его с C #.
#include "windows.h"
#include "stdafx.h"
#include "urlmon.h"
#using <mscorlib.dll>
#include <atldef.h>
#include <atlconv.h>
using namespace System;
using namespace System::Runtime::InteropServices;
#define MAX_LOADSTRING 100
int _tmain(int argc, _TCHAR* argv[])
{
// constants from urlmon.h
const int URLZONE_LOCAL_MACHINE = 0;
const int URLZONE_INTRANET = URLZONE_LOCAL_MACHINE + 1;
const int URLZONE_TRUSTED = URLZONE_INTRANET + 1;
const int URLZONE_INTERNET = URLZONE_TRUSTED + 1;
const int URLZONE_UNTRUSTED = URLZONE_INTERNET + 1;
const int URLZONE_ESC_FLAG = 0x100;
const int SZM_CREATE = 0;
const int SZM_DELETE = 0x1;
HRESULT hr;
IInternetSecurityManager *pSecurityMgr;
LPCWSTR sites = SysAllocString(L"http://*.mydomain.com");
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_InternetSecurityManager, NULL, CLSCTX_INPROC_SERVER, IID_IInternetSecurityManager, (void**)&pSecurityMgr);
pSecurityMgr->SetZoneMapping(URLZONE_TRUSTED, sites, SZM_CREATE);
pSecurityMgr->Release();
return 0;
}