internal AutoWebProxyScriptEngine(WebProxy proxy, bool useRegistry) { GlobalLog.Assert(proxy != null, "'proxy' must be assigned."); webProxy = proxy; m_UseRegistry = useRegistry; #if !FEATURE_PAL m_AutoDetector = AutoDetector.CurrentAutoDetector; m_NetworkChangeStatus = m_AutoDetector.NetworkChangeStatus; SafeRegistryHandle.RegOpenCurrentUser(UnsafeNclNativeMethods.RegistryHelper.KEY_READ, out hkcu); if (m_UseRegistry) { ListenForRegistry(); // Keep track of the identity we used to read the registry, in case we need to read it again later. m_Identity = WindowsIdentity.GetCurrent(); } #endif // !FEATURE_PAL // In Win2003 winhttp added a Windows Service handling the auto-proxy discovery. In XP using winhttp // APIs will load, compile and execute the wpad file in-process. This will also load COM, since // WinHttp requires COM to compile the file. For these reasons, we don't use WinHttp on XP, but // only on newer OS versions where the "WinHTTP Web Proxy Auto-Discovery Service" exists. webProxyFinder = new HybridWebProxyFinder(this); }
internal AutoWebProxyScriptEngine(WebProxy proxy, bool useRegistry) { GlobalLog.Assert(proxy != null, "'proxy' must be assigned."); webProxy = proxy; m_UseRegistry = useRegistry; #if !FEATURE_PAL m_AutoDetector = AutoDetector.CurrentAutoDetector; m_NetworkChangeStatus = m_AutoDetector.NetworkChangeStatus; SafeRegistryHandle.RegOpenCurrentUser(UnsafeNclNativeMethods.RegistryHelper.KEY_READ, out hkcu); if (m_UseRegistry) { ListenForRegistry(); // Keep track of the identity we used to read the registry, in case we need to read it again later. m_Identity = WindowsIdentity.GetCurrent(); } #endif // !FEATURE_PAL // In Win2003 winhttp added a Windows Service handling the auto-proxy discovery. In XP using winhttp // APIs will load, compile and execute the wpad file in-process. This will also load COM, since // WinHttp requires COM to compile the file. For these reasons, we don't use WinHttp on XP, but // only on newer OS versions where the "WinHTTP Web Proxy Auto-Discovery Service" exists. webProxyFinder = new HybridWebProxyFinder(this); }
internal AutoWebProxyScriptEngine(WebProxy proxy, bool useRegistry) { this.webProxy = proxy; this.m_UseRegistry = useRegistry; this.m_AutoDetector = AutoDetector.CurrentAutoDetector; this.m_NetworkChangeStatus = this.m_AutoDetector.NetworkChangeStatus; SafeRegistryHandle.RegOpenCurrentUser(0x20019, out this.hkcu); if (this.m_UseRegistry) { this.ListenForRegistry(); this.m_Identity = WindowsIdentity.GetCurrent(); } this.webProxyFinder = new HybridWebProxyFinder(this); }