Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Shared / MS / Win32 / WinInet.cs / 1 / WinInet.cs
using System; using System.Security; using System.Runtime.InteropServices; namespace MS.Win32 { internal static class WinInet { ////// Will return the location of the internet cache folder. /// ///The location of the internet cache folder. ////// Critical: /// 1) Calls several Marshal methods which have a link demand on them. /// 2) Calls NativeMethods.GetUrlCacheConfigInfo which is SecurityCritical. /// Not Safe: /// 2) Returns a Path that may leak information about the system. /// internal static Uri InternetCacheFolder { [SecurityCritical] get { // copied value 260 from orginal implementation in BitmapDownload.cs const int maxPathSize = 260; const UInt32 fieldControl = (UInt32)maxPathSize; NativeMethods.InternetCacheConfigInfo icci = new NativeMethods.InternetCacheConfigInfo(); icci.CachePath = new string(new char[maxPathSize]); UInt32 size = (UInt32)Marshal.SizeOf(icci); icci.dwStructSize = size; bool passed = UnsafeNativeMethods.GetUrlCacheConfigInfo( ref icci, ref size, fieldControl); if (!passed) { int hr = Marshal.GetHRForLastWin32Error(); if (hr != 0) { Marshal.ThrowExceptionForHR(hr); } } return new Uri(icci.CachePath); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Security; using System.Runtime.InteropServices; namespace MS.Win32 { internal static class WinInet { ////// Will return the location of the internet cache folder. /// ///The location of the internet cache folder. ////// Critical: /// 1) Calls several Marshal methods which have a link demand on them. /// 2) Calls NativeMethods.GetUrlCacheConfigInfo which is SecurityCritical. /// Not Safe: /// 2) Returns a Path that may leak information about the system. /// internal static Uri InternetCacheFolder { [SecurityCritical] get { // copied value 260 from orginal implementation in BitmapDownload.cs const int maxPathSize = 260; const UInt32 fieldControl = (UInt32)maxPathSize; NativeMethods.InternetCacheConfigInfo icci = new NativeMethods.InternetCacheConfigInfo(); icci.CachePath = new string(new char[maxPathSize]); UInt32 size = (UInt32)Marshal.SizeOf(icci); icci.dwStructSize = size; bool passed = UnsafeNativeMethods.GetUrlCacheConfigInfo( ref icci, ref size, fieldControl); if (!passed) { int hr = Marshal.GetHRForLastWin32Error(); if (hr != 0) { Marshal.ThrowExceptionForHR(hr); } } return new Uri(icci.CachePath); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlMembersMapping.cs
- QuaternionRotation3D.cs
- VersionedStreamOwner.cs
- DoubleLinkList.cs
- MimeTextImporter.cs
- BeginStoryboard.cs
- ValidationRule.cs
- WhitespaceRuleReader.cs
- Int32Animation.cs
- FileUtil.cs
- ControlCachePolicy.cs
- ZipPackage.cs
- NominalTypeEliminator.cs
- FullTextState.cs
- MimeMultiPart.cs
- CssClassPropertyAttribute.cs
- BoundColumn.cs
- DeviceSpecificChoice.cs
- VScrollBar.cs
- ACL.cs
- MessageQueueCriteria.cs
- CultureTableRecord.cs
- WS2007HttpBindingElement.cs
- DockEditor.cs
- UserControlParser.cs
- ListViewUpdateEventArgs.cs
- HtmlTernaryTree.cs
- QilGenerator.cs
- TextInfo.cs
- DictionaryEntry.cs
- RetrieveVirtualItemEventArgs.cs
- CapabilitiesUse.cs
- RegistryPermission.cs
- DescriptionAttribute.cs
- NotifyIcon.cs
- OdbcConnectionFactory.cs
- MouseButtonEventArgs.cs
- XsltConvert.cs
- XmlCharType.cs
- Set.cs
- ControlDesigner.cs
- PersistChildrenAttribute.cs
- ListViewItem.cs
- ArrangedElement.cs
- DataColumnCollection.cs
- LexicalChunk.cs
- SectionUpdates.cs
- ClientFormsIdentity.cs
- DependencyObject.cs
- ISFTagAndGuidCache.cs
- HttpClientCertificate.cs
- TextMessageEncoder.cs
- RootContext.cs
- AQNBuilder.cs
- PageAdapter.cs
- AtomicFile.cs
- LinqDataSourceDisposeEventArgs.cs
- SqlMultiplexer.cs
- SQLByte.cs
- _SslStream.cs
- WorkflowServiceNamespace.cs
- SpinWait.cs
- DataObjectSettingDataEventArgs.cs
- SQLInt64Storage.cs
- ProfileBuildProvider.cs
- Enum.cs
- TextElementAutomationPeer.cs
- ListChangedEventArgs.cs
- FormsAuthenticationModule.cs
- ControlCachePolicy.cs
- StringValueSerializer.cs
- PerformanceCounterCategory.cs
- SystemEvents.cs
- ThemeDictionaryExtension.cs
- ToolStripDropDownMenu.cs
- EntityChangedParams.cs
- SecurityBindingElement.cs
- _DomainName.cs
- InternalDuplexChannelFactory.cs
- RoleBoolean.cs
- PageThemeParser.cs
- PenContext.cs
- ErrorRuntimeConfig.cs
- CodeTypeMemberCollection.cs
- PerfCounterSection.cs
- SmtpDigestAuthenticationModule.cs
- Control.cs
- WebExceptionStatus.cs
- SmtpNegotiateAuthenticationModule.cs
- ResourceDictionary.cs
- Label.cs
- SystemIPInterfaceStatistics.cs
- Function.cs
- StringBuilder.cs
- SqlInternalConnectionSmi.cs
- Vector3DAnimation.cs
- DateTimeParse.cs
- ChangePassword.cs
- DataKeyPropertyAttribute.cs
- MexHttpsBindingCollectionElement.cs