Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Utility / ProtectedUri.cs / 2 / ProtectedUri.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: protecteduri.cs // // Description: Secure wrapper for URIs containing path information // // History: 12-02-04 - [....] - created //----------------------------------------------------------------------------- using System; using System.IO; using System.ComponentModel; using System.Windows; using System.Windows.Navigation; using System.Windows.Media; using System.Diagnostics; using System.Globalization; using System.Security.Permissions; using System.IO.Packaging; using MS.Internal.AppModel; using System.Windows.Controls; using MS.Internal ; using MS.Internal.PresentationFramework; // SecurityHelper using System.Security; namespace MS.Internal.Utility { ////// Wrapper class for URIs containing path information. /// internal class ProtectedUri { ////// Original URI which should *not* contain path information ever /// Uri _originalUri; ////// URI that may contain path information /// ////// Critical - may contain path information /// [SecurityCritical] Uri _value; ////// Determines if _value contains path information /// ////// Critical - determines if _value contains path information, which /// in turn determines if we demand a permission to get access /// to _value. /// [SecurityCritical] bool _containsPathInformation; ////// Creates a ProtectedUri that contains no path information /// /// Safe URI (generally provided from user code) ///Protected wrapper ////// Critical - because the caller of this API needs to ensure that [SecurityCritical] internal static ProtectedUri FromSafeUri(Uri value) { if (value == null) throw new ArgumentNullException("value"); ProtectedUri wrapper = new ProtectedUri(); wrapper._value = wrapper._originalUri = value; wrapper._containsPathInformation = false; return wrapper; } ////// contains no critical information, this API is critical. /// /// Returns the "full" URI (may contain path information> /// ////// There is currently no "safeUri" property on this class, /// however you could write one if there is a need. Look at SD history for an example. /// ////// Critical - deals with full URI /// TreatAsSafe - demands PathDiscovery if the URI is tagged as having path information /// internal Uri UnsafeUri { [SecurityCritical, SecurityTreatAsSafe] get { if (_containsPathInformation) { SecurityHelper.DemandPathDiscovery(_value.LocalPath); } return _value; } } ////// Returns the hashcode associated with the URI /// ///hashcode associated with the URI ////// Critical - access the full URI /// [SecurityCritical] public override int GetHashCode() { return _value.GetHashCode(); } ////// Determines if this wraps the same uri as another protected URI /// /// ProtectedURI to compare to. ////// true if the objects are equal/// Critical - access the full URI /// [SecurityCritical] public override bool Equals(object other) { ProtectedUri otherUri = other as ProtectedUri; return (otherUri != null) && (this._value.Equals(otherUri._value)) && (this._containsPathInformation.Equals(otherUri._containsPathInformation)); } } } // 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
- SqlDataSourceQueryEditor.cs
- SqlProcedureAttribute.cs
- ObjectSet.cs
- ProviderConnectionPoint.cs
- DataControlFieldCollection.cs
- DynamicRouteExpression.cs
- StringCollection.cs
- ElementsClipboardData.cs
- unsafenativemethodsother.cs
- SparseMemoryStream.cs
- RestClientProxyHandler.cs
- HttpListenerPrefixCollection.cs
- SqlProfileProvider.cs
- SecurityCredentialsManager.cs
- PolicyStatement.cs
- PingReply.cs
- Point3DKeyFrameCollection.cs
- DefaultObjectMappingItemCollection.cs
- ClientTargetSection.cs
- BaseCodeDomTreeGenerator.cs
- DataTemplate.cs
- WebPartVerbsEventArgs.cs
- ReachSerializer.cs
- StorageFunctionMapping.cs
- GenericTypeParameterBuilder.cs
- ModelEditingScope.cs
- PropertyValidationContext.cs
- EntityDataSourceUtil.cs
- WindowsTitleBar.cs
- Component.cs
- InheritedPropertyChangedEventArgs.cs
- Constants.cs
- RegexGroupCollection.cs
- DetailsViewCommandEventArgs.cs
- HttpSysSettings.cs
- RegexCaptureCollection.cs
- Int32CAMarshaler.cs
- XsdDuration.cs
- ConsoleKeyInfo.cs
- UrlPath.cs
- TransformerTypeCollection.cs
- InfoCardServiceInstallComponent.cs
- MtomMessageEncoder.cs
- TypeUtils.cs
- BaseAppDomainProtocolHandler.cs
- Binding.cs
- XmlSerializerAssemblyAttribute.cs
- MatrixValueSerializer.cs
- SecureUICommand.cs
- RootBrowserWindow.cs
- SafeNativeMethods.cs
- Listener.cs
- EntityDataSourceEntitySetNameItem.cs
- DetailsViewRow.cs
- EntityCommand.cs
- Regex.cs
- DefaultEventAttribute.cs
- MarkupObject.cs
- ColumnResult.cs
- SqlUserDefinedAggregateAttribute.cs
- SemanticResolver.cs
- ControlBindingsCollection.cs
- DataServiceCollectionOfT.cs
- ColumnHeaderConverter.cs
- SchemaElementDecl.cs
- TreeNodeConverter.cs
- StaticResourceExtension.cs
- login.cs
- XslException.cs
- SafeBitVector32.cs
- CookielessHelper.cs
- DirectoryObjectSecurity.cs
- ReferentialConstraintRoleElement.cs
- DetailsViewUpdatedEventArgs.cs
- BrowserTree.cs
- DoubleLinkList.cs
- ProfileBuildProvider.cs
- PassportAuthentication.cs
- ObjectStorage.cs
- ColorAnimationBase.cs
- RequestCachePolicyConverter.cs
- GPPOINT.cs
- NavigationProperty.cs
- Char.cs
- PropertyGridView.cs
- objectquery_tresulttype.cs
- ByteConverter.cs
- OracleBFile.cs
- XmlLinkedNode.cs
- CodeObject.cs
- FileFormatException.cs
- BitmapEffectGeneralTransform.cs
- WebPartZoneBase.cs
- XmlSchemaObjectCollection.cs
- Control.cs
- QuaternionAnimation.cs
- IntegrationExceptionEventArgs.cs
- ViewManager.cs
- BitmapEffectInput.cs
- WebSysDefaultValueAttribute.cs