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
- ChangeTracker.cs
- RecordManager.cs
- ClickablePoint.cs
- AesCryptoServiceProvider.cs
- AppDomainGrammarProxy.cs
- AssertSection.cs
- SectionVisual.cs
- LiteralTextParser.cs
- MailBnfHelper.cs
- AppDomainAttributes.cs
- ItemsControlAutomationPeer.cs
- XmlAtomicValue.cs
- _SslStream.cs
- DocumentApplicationJournalEntry.cs
- Vector3DCollection.cs
- AssemblyNameUtility.cs
- FlowLayoutSettings.cs
- PenContexts.cs
- PerspectiveCamera.cs
- StateWorkerRequest.cs
- InvokeProviderWrapper.cs
- ContentPlaceHolderDesigner.cs
- GridItem.cs
- TcpChannelHelper.cs
- RoleManagerSection.cs
- Control.cs
- DefaultParameterValueAttribute.cs
- MenuItemAutomationPeer.cs
- FilteredDataSetHelper.cs
- _IPv6Address.cs
- GlobalProxySelection.cs
- BitmapEffect.cs
- SmtpDigestAuthenticationModule.cs
- DataGridViewRowConverter.cs
- Point3DValueSerializer.cs
- DataGridCell.cs
- WindowsButton.cs
- DesignerAttributeInfo.cs
- ContainerAction.cs
- CommonObjectSecurity.cs
- Positioning.cs
- Serialization.cs
- Lasso.cs
- SchemaInfo.cs
- ResourceContainer.cs
- DataGridViewCellLinkedList.cs
- XamlRtfConverter.cs
- MobileUserControlDesigner.cs
- LinkButton.cs
- XmlNodeReader.cs
- Freezable.cs
- DetailsViewPagerRow.cs
- Transform.cs
- Propagator.ExtentPlaceholderCreator.cs
- CompiledIdentityConstraint.cs
- DataTableExtensions.cs
- MarkupProperty.cs
- OutOfProcStateClientManager.cs
- InvalidCastException.cs
- safemediahandle.cs
- WinFormsSecurity.cs
- DataGridViewUtilities.cs
- InternalsVisibleToAttribute.cs
- BindingBase.cs
- FacetDescriptionElement.cs
- ConnectAlgorithms.cs
- SingletonConnectionReader.cs
- StylusButtonCollection.cs
- Stylesheet.cs
- Image.cs
- OneOfElement.cs
- RSAPKCS1SignatureFormatter.cs
- QilLiteral.cs
- AnonymousIdentificationModule.cs
- LiteralTextContainerControlBuilder.cs
- CodeBlockBuilder.cs
- DesignerVerb.cs
- SiteMapNodeItemEventArgs.cs
- TemplateControlParser.cs
- WpfWebRequestHelper.cs
- DataViewSetting.cs
- DynamicFilter.cs
- SQLGuidStorage.cs
- DLinqDataModelProvider.cs
- EntityClientCacheKey.cs
- Binding.cs
- SharedStatics.cs
- CustomAttribute.cs
- LowerCaseStringConverter.cs
- EventLogSession.cs
- Graphics.cs
- TokenBasedSet.cs
- BasicExpandProvider.cs
- GridItemPatternIdentifiers.cs
- ToolZoneDesigner.cs
- BindableAttribute.cs
- _Connection.cs
- ItemAutomationPeer.cs
- EntityDataSourceSelectingEventArgs.cs
- MouseDevice.cs