Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Shared / MS / Win32 / WinInet.cs / 2 / 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
- XLinq.cs
- FirstMatchCodeGroup.cs
- XmlImplementation.cs
- FileFormatException.cs
- UpdateDelegates.Generated.cs
- RTLAwareMessageBox.cs
- WorkItem.cs
- FieldBuilder.cs
- Drawing.cs
- CollectionAdapters.cs
- PasswordTextNavigator.cs
- FixedTextContainer.cs
- FragmentNavigationEventArgs.cs
- Decoder.cs
- SelectingProviderEventArgs.cs
- RegexGroup.cs
- ImageClickEventArgs.cs
- ModifierKeysConverter.cs
- XmlSchemaDatatype.cs
- HttpConfigurationContext.cs
- HtmlInputFile.cs
- IdentityReference.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- ServiceConfigurationTraceRecord.cs
- webproxy.cs
- WebBrowser.cs
- BitmapEffectDrawing.cs
- GenericEnumerator.cs
- AppSettingsReader.cs
- GestureRecognizer.cs
- FormViewModeEventArgs.cs
- PointCollection.cs
- XmlSchemaAnyAttribute.cs
- ConstraintManager.cs
- DynamicDocumentPaginator.cs
- ConcurrentQueue.cs
- TimelineGroup.cs
- StrongNamePublicKeyBlob.cs
- DeviceContext.cs
- OracleParameterBinding.cs
- XamlInt32CollectionSerializer.cs
- safemediahandle.cs
- SqlDataReaderSmi.cs
- RemoteWebConfigurationHostStream.cs
- DataSysAttribute.cs
- SqlProfileProvider.cs
- ConfigXmlWhitespace.cs
- DescendentsWalker.cs
- Int32CollectionConverter.cs
- GeometryGroup.cs
- BaseValidator.cs
- RedirectionProxy.cs
- DataGridViewLayoutData.cs
- ConfigurationPropertyCollection.cs
- ProgressBarAutomationPeer.cs
- TabPanel.cs
- EmptyControlCollection.cs
- ObjectList.cs
- TemplateControlCodeDomTreeGenerator.cs
- BufferedGraphicsManager.cs
- Keyboard.cs
- XamlInt32CollectionSerializer.cs
- FontStyleConverter.cs
- Propagator.ExtentPlaceholderCreator.cs
- TypeNameParser.cs
- DefaultBinder.cs
- AutoGeneratedField.cs
- codemethodreferenceexpression.cs
- MarkupCompilePass2.cs
- oledbmetadatacolumnnames.cs
- UnmanagedMemoryAccessor.cs
- BitmapImage.cs
- KeyToListMap.cs
- SynchronizedPool.cs
- BoundPropertyEntry.cs
- ControlTemplate.cs
- WorkflowOwnershipException.cs
- XmlNavigatorStack.cs
- _LocalDataStoreMgr.cs
- ToolStripControlHost.cs
- Types.cs
- XmlDataContract.cs
- Color.cs
- Pair.cs
- PointCollectionConverter.cs
- Deflater.cs
- CaseInsensitiveHashCodeProvider.cs
- Crc32Helper.cs
- GenerateHelper.cs
- BackEase.cs
- FieldAccessException.cs
- IdentityNotMappedException.cs
- BoolLiteral.cs
- DetailsViewRow.cs
- BitConverter.cs
- ComponentEvent.cs
- NetDataContractSerializer.cs
- XmlDomTextWriter.cs
- WebPartsPersonalizationAuthorization.cs
- ResolveMatchesCD1.cs