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
- ToolStripPanelRow.cs
- wgx_sdk_version.cs
- SelectionList.cs
- Helpers.cs
- PartialList.cs
- DbConnectionPoolOptions.cs
- XPathPatternBuilder.cs
- SchemaImporterExtensionElementCollection.cs
- RC2CryptoServiceProvider.cs
- PaintEvent.cs
- DecimalAnimation.cs
- ComNativeDescriptor.cs
- FontUnitConverter.cs
- TemplateField.cs
- infer.cs
- SoapEnumAttribute.cs
- StateWorkerRequest.cs
- ExtentJoinTreeNode.cs
- sitestring.cs
- SoapObjectInfo.cs
- ExtendedProtectionPolicy.cs
- MetadataArtifactLoaderComposite.cs
- XPathNode.cs
- PerfService.cs
- CommonRemoteMemoryBlock.cs
- ControlBindingsCollection.cs
- CollaborationHelperFunctions.cs
- LocatorPart.cs
- safePerfProviderHandle.cs
- CheckBox.cs
- HtmlInputButton.cs
- ServicePointManagerElement.cs
- IdentityReference.cs
- TimeSpanOrInfiniteValidator.cs
- QilXmlWriter.cs
- CapabilitiesSection.cs
- FixedTextBuilder.cs
- SoapObjectReader.cs
- ViewPort3D.cs
- OleAutBinder.cs
- Ray3DHitTestResult.cs
- WindowsListView.cs
- DialogResultConverter.cs
- CodeThrowExceptionStatement.cs
- CodeCompiler.cs
- KnownTypesProvider.cs
- RightsManagementEncryptedStream.cs
- ByteStreamGeometryContext.cs
- TypeValidationEventArgs.cs
- TextEditorCopyPaste.cs
- QueryStringHandler.cs
- AsynchronousChannelMergeEnumerator.cs
- WebPartUserCapability.cs
- TypeDescriptionProvider.cs
- NaturalLanguageHyphenator.cs
- DynamicDocumentPaginator.cs
- PEFileReader.cs
- MailHeaderInfo.cs
- HostProtectionException.cs
- OracleCommandSet.cs
- PathData.cs
- ISCIIEncoding.cs
- DataGridViewAutoSizeModeEventArgs.cs
- TrustManagerPromptUI.cs
- XslCompiledTransform.cs
- TemplateNameScope.cs
- ItemsPanelTemplate.cs
- ObjectStorage.cs
- TypeContext.cs
- StrongNameKeyPair.cs
- MimeObjectFactory.cs
- Decorator.cs
- SafeNativeMethods.cs
- ChangesetResponse.cs
- DataKey.cs
- XmlElementCollection.cs
- BufferBuilder.cs
- SecurityCriticalDataForSet.cs
- TextSegment.cs
- TagPrefixInfo.cs
- ConfigurationSchemaErrors.cs
- TextView.cs
- StyleSheetComponentEditor.cs
- CodeMemberField.cs
- LayoutEngine.cs
- CleanUpVirtualizedItemEventArgs.cs
- GuidConverter.cs
- ColumnResult.cs
- XmlCharacterData.cs
- ConfigurationStrings.cs
- VirtualizingPanel.cs
- MissingFieldException.cs
- ObjectDataSourceEventArgs.cs
- ConnectionManagementElement.cs
- VirtualPathProvider.cs
- EventData.cs
- ContextMenuStripActionList.cs
- CodeAssignStatement.cs
- SystemIPGlobalStatistics.cs
- OleDbConnectionInternal.cs