views:

459

answers:

5

How can I add an URL to the trusted site? It seems that there are stored in the registry, but where exactly?
The hints I've googled so far weren't helpfull.

The .net programm will run locally on each client.

Edit clarification: I want to do this programmaticly running C# code.

+1  A: 

Check this solution at CodeGuru forums.

In summary, this code uses the COM library, a library which you did say you wished to avoid. However, there is no workaround this situation. Another thing to mention is that this code is written in C++, as the guy who wrote it, CorithMartin, ported it from 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;
}
Christopher Richa
I clarified my question.
citronas
@citronas, I have edited my answer.
Christopher Richa
+2  A: 

The following should give you the way to do it in code...

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

Leom Burke
The code you posted wraps a Com object. Might there be another solution involving the registry?
citronas
+4  A: 

MSDN

Adding Sites Programmatically

C#

drorhan
http://stackoverflow.com/questions/972345/programmatically-add-trusted-sites-to-internet-explorer
drorhan
A: 

It lies indeed in the registry, and it's described right there:

http://msdn.microsoft.com/en-us/library/ms537181%28VS.85%29.aspx

Beware of the UAC in Vista though. It's a real pain to deal with.

Vinzz
A: 

To add a new trusted zone it creates zone registry keys and folders on the path HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains for each domain it creates a new key with domain name ( sample.com) a new key under this one with the subdomain (www) and under this one a new REG_DWORD with name of the scheme (http or https) value 2 on hexadecimal and that is it,you got it done

Hansy