Как добавить URL в доверенную зону в Internet Explorer?

Как я могу добавить URL на доверенный сайт? Кажется, что там хранятся в реестре, но где именно?
Намеки, которые я до сих пор гуглил, не помогли.

Программа.net будет запускаться локально на каждом клиенте.

Редактировать пояснение: я хочу сделать это программно работающим кодом C#.

7 ответов

Решение

Следующее должно дать вам способ сделать это в коде...

http://blogs.msdn.com/ie/archive/2005/01/26/361228.aspx

Проверьте это решение на форумах 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 в шестнадцатеричном формате, и все, вы сделали это

Вот способ упростить процесс.

  1. Создайте.exe, чтобы запросить домен (текстовое поле), укажите провайдеров (в виде флажков: Все, http, https, ftp), нажмите "Добавить сайт в доверенные сайты", чтобы затем сделать следующее:
  2. Создайте временную папку на C: как "C: \ TempTS \"
  3. Создайте файл.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.computerhope.com/registry.html

также:

см. http://www.computing.net/answers/windows-xp/bat-file-to-add-trusted-site-in-ie/139995.html

Другие вопросы по тегам