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
- HMACSHA512.cs
- Rect3DConverter.cs
- TransactionManager.cs
- _ConnectStream.cs
- _SpnDictionary.cs
- DataGridViewRowConverter.cs
- Debug.cs
- ExecutedRoutedEventArgs.cs
- RelativeSource.cs
- log.cs
- ConfigXmlReader.cs
- InputEventArgs.cs
- ApplyImportsAction.cs
- DbProviderSpecificTypePropertyAttribute.cs
- Label.cs
- MetadataArtifactLoader.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ExpressionCopier.cs
- UriScheme.cs
- ConfigurationValue.cs
- FontFamilyIdentifier.cs
- RegistryPermission.cs
- AdornedElementPlaceholder.cs
- EnvironmentPermission.cs
- initElementDictionary.cs
- BordersPage.cs
- _AuthenticationState.cs
- ApplicationSecurityInfo.cs
- XmlSchemaObjectTable.cs
- SQLResource.cs
- WebReferenceOptions.cs
- TimeoutException.cs
- TabletDevice.cs
- BypassElementCollection.cs
- Enum.cs
- RenderContext.cs
- XmlSchemaSimpleTypeRestriction.cs
- CodeArgumentReferenceExpression.cs
- Transform3DCollection.cs
- BamlReader.cs
- ValidationHelper.cs
- BaseDataList.cs
- SourceFileBuildProvider.cs
- ColumnPropertiesGroup.cs
- ArraySortHelper.cs
- HandlerBase.cs
- WebPartManagerInternals.cs
- CatalogPartChrome.cs
- PackagingUtilities.cs
- WorkflowMarkupSerializationManager.cs
- Line.cs
- TempFiles.cs
- RayHitTestParameters.cs
- SmiMetaData.cs
- InfoCardServiceInstallComponent.cs
- ZoneButton.cs
- PersistenceTypeAttribute.cs
- OleDbTransaction.cs
- TemplateNameScope.cs
- ControllableStoryboardAction.cs
- XmlElementAttribute.cs
- PropertyGridView.cs
- PartBasedPackageProperties.cs
- XmlLanguage.cs
- TypeSystem.cs
- SerializationEventsCache.cs
- PngBitmapDecoder.cs
- SecurityStandardsManager.cs
- FileVersionInfo.cs
- EdmType.cs
- SoapMessage.cs
- ExtensionWindowResizeGrip.cs
- PolyLineSegment.cs
- DataSourceGeneratorException.cs
- CodeDomDecompiler.cs
- TableCellCollection.cs
- StringPropertyBuilder.cs
- RegisteredExpandoAttribute.cs
- EdmComplexPropertyAttribute.cs
- ReflectionUtil.cs
- ConfigurationValues.cs
- SoapInteropTypes.cs
- RequestCacheValidator.cs
- LogSwitch.cs
- ConfigurationLoader.cs
- ImageIndexConverter.cs
- SqlCommandSet.cs
- SmtpException.cs
- DeleteMemberBinder.cs
- InvalidCastException.cs
- TextProperties.cs
- XmlSchemaElement.cs
- VisemeEventArgs.cs
- CallTemplateAction.cs
- DecoderBestFitFallback.cs
- InputScopeConverter.cs
- MemberHolder.cs
- MessageQueueInstaller.cs
- RegistryConfigurationProvider.cs
- DataGridCommandEventArgs.cs