Как добавить URL в доверенную зону в Internet Explorer?
Как я могу добавить URL на доверенный сайт? Кажется, что там хранятся в реестре, но где именно?
Намеки, которые я до сих пор гуглил, не помогли.
Программа.net будет запускаться локально на каждом клиенте.
Редактировать пояснение: я хочу сделать это программно работающим кодом C#.
7 ответов
Следующее должно дать вам способ сделать это в коде...
Проверьте это решение на форумах 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;
}
Powershell
#Setting IExplorer settings
Write-Verbose "Now configuring IE"
#Add http://website.com as a trusted Site/Domain
#Navigate to the domains folder in the registry
set-location "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
set-location ZoneMap\Domains
#Create a new folder with the website name
new-item website/ -Force
set-location website/
new-itemproperty . -Name * -Value 2 -Type DWORD -Force
new-itemproperty . -Name http -Value 2 -Type DWORD -Force
new-itemproperty . -Name https -Value 2 -Type DWORD -Force
Он действительно лежит в реестре и описан тут же:
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 в шестнадцатеричном формате, и все, вы сделали это
Вот способ упростить процесс.
- Создайте.exe, чтобы запросить домен (текстовое поле), укажите провайдеров (в виде флажков: Все, http, https, ftp), нажмите "Добавить сайт в доверенные сайты", чтобы затем сделать следующее:
- Создайте временную папку на C: как "C: \ TempTS \"
- Создайте файл.bat ("C:\TempTS\AddTrustedSites.bat"), подобный этому:
set regFile = "C: \ TempTS \ AddTrustedSiteTS.reg"
ECHO Редактор реестра Windows, версия 5.00>% regFile%
ECHO [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Настройки Интернета \ ZoneMap \ Domains \ MySecureDomain.com \ www] >>% regFile
ECHO "https" = dword: 00000002 >>% regFile%
regedit / s% regFile%
DEL% regFile%
Строки ECHO [HKEY_CURRENT_USER... и ECHO "https"... могут повторяться для каждого проверенного провайдера. Для провайдера "ALL" вместо "https" используйте звездочку, например:
ECHO [HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Настройки Интернета \ZoneMap\Domains\MySecureDomain.com\www] >> %regFile% ECHO "*"=dword:00000002 >> %regFile%
Запустите файл.bat, используя этот вызов:
System.Diagnostics.Process.Start ("C: \ соблазняет \ AddTrustedSites.bat")
После запуска.bat-файла (занимает всего несколько микросекунд) удалите как файл bat, так и каталог tempTS.
MacSpudster
(он же GNoter, TechStuffBC)
=========================
Кредит, где кредит должен:
regedit / s AddTrustedSite.reg
"/s" будет подавлять диалоговые окна подтверждения
также:
см. http://www.computing.net/answers/windows-xp/bat-file-to-add-trusted-site-in-ie/139995.html