Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Shared / MS / Internal / Permissions / InternalPermissions.cs / 1 / InternalPermissions.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Internal Permissions. // These are classes for permissions that will be asserted/demanded internally. // But will be granted in full-trust. // Only internal avalon code will assert these permissions. // // Using them allows the following: // We can have very specific targeted asserts. So for example instead of // a blanket assert for Unmanaged code instead we can have very granular permissiosn. // // They are still available by default in full-trust. // // Currently the only way to detect User-Initiated actions is for commands. // So by associating a custom permisison with a command we can very tightly scope // the set of operations allowed. // // History: // 02/28/05 : marka - Created //--------------------------------------------------------------------------- using System; using System.Text; using System.Security; using System.Security.Permissions; using System.Windows; #if WINDOWS_BASE using MS.Internal.WindowsBase; #endif namespace MS.Internal.Permissions { // // derive all InternalPermissions from this. // Provides default implementations of several abstract methods on CodeAccessPermission // [FriendAccessAllowed] internal abstract class InternalPermissionBase : CodeAccessPermission, IUnrestrictedPermission { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructor public InternalPermissionBase( ) { } #endregion Constructor //------------------------------------------------------ // // Interface Methods // //----------------------------------------------------- #region Interface Methods public bool IsUnrestricted() { return true; } #endregion Interface Methods //------------------------------------------------------ // // Public Methods // //------------------------------------------------------ #region Public Methods public override SecurityElement ToXml() { SecurityElement element = new SecurityElement("IPermission"); Type type = this.GetType(); StringBuilder AssemblyName = new StringBuilder(type.Assembly.ToString()); AssemblyName.Replace('\"', '\''); element.AddAttribute("class", type.FullName + ", " + AssemblyName); element.AddAttribute("version", "1"); return element; } public override void FromXml( SecurityElement elem) { // from XML is easy - there is no state. } public override IPermission Intersect(IPermission target) { if(null == target) { return null; } if ( target.GetType() != this.GetType() ) { throw new ArgumentException( SR.Get(SRID.InvalidPermissionType), this.GetType().FullName); } // there is no state. The intersection of 2 permissions of the same type is the same permission. return this.Copy(); } public override bool IsSubsetOf(IPermission target) { if(null == target) { return false; } if ( target.GetType() != this.GetType() ) { throw new ArgumentException( SR.Get(SRID.InvalidPermissionType), this.GetType().FullName); } // there is no state. If you are the same type as me - you are a subset of me. return true; } #endregion Public Methods } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Internal Permissions. // These are classes for permissions that will be asserted/demanded internally. // But will be granted in full-trust. // Only internal avalon code will assert these permissions. // // Using them allows the following: // We can have very specific targeted asserts. So for example instead of // a blanket assert for Unmanaged code instead we can have very granular permissiosn. // // They are still available by default in full-trust. // // Currently the only way to detect User-Initiated actions is for commands. // So by associating a custom permisison with a command we can very tightly scope // the set of operations allowed. // // History: // 02/28/05 : marka - Created //--------------------------------------------------------------------------- using System; using System.Text; using System.Security; using System.Security.Permissions; using System.Windows; #if WINDOWS_BASE using MS.Internal.WindowsBase; #endif namespace MS.Internal.Permissions { // // derive all InternalPermissions from this. // Provides default implementations of several abstract methods on CodeAccessPermission // [FriendAccessAllowed] internal abstract class InternalPermissionBase : CodeAccessPermission, IUnrestrictedPermission { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructor public InternalPermissionBase( ) { } #endregion Constructor //------------------------------------------------------ // // Interface Methods // //----------------------------------------------------- #region Interface Methods public bool IsUnrestricted() { return true; } #endregion Interface Methods //------------------------------------------------------ // // Public Methods // //------------------------------------------------------ #region Public Methods public override SecurityElement ToXml() { SecurityElement element = new SecurityElement("IPermission"); Type type = this.GetType(); StringBuilder AssemblyName = new StringBuilder(type.Assembly.ToString()); AssemblyName.Replace('\"', '\''); element.AddAttribute("class", type.FullName + ", " + AssemblyName); element.AddAttribute("version", "1"); return element; } public override void FromXml( SecurityElement elem) { // from XML is easy - there is no state. } public override IPermission Intersect(IPermission target) { if(null == target) { return null; } if ( target.GetType() != this.GetType() ) { throw new ArgumentException( SR.Get(SRID.InvalidPermissionType), this.GetType().FullName); } // there is no state. The intersection of 2 permissions of the same type is the same permission. return this.Copy(); } public override bool IsSubsetOf(IPermission target) { if(null == target) { return false; } if ( target.GetType() != this.GetType() ) { throw new ArgumentException( SR.Get(SRID.InvalidPermissionType), this.GetType().FullName); } // there is no state. If you are the same type as me - you are a subset of me. return true; } #endregion Public Methods } } // 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
- Int64Storage.cs
- SchemaDeclBase.cs
- WindowsToolbarItemAsMenuItem.cs
- _CommandStream.cs
- EarlyBoundInfo.cs
- ThicknessConverter.cs
- XslCompiledTransform.cs
- WinCategoryAttribute.cs
- Serializer.cs
- OleDbParameter.cs
- LinearKeyFrames.cs
- ToolStripLabel.cs
- OSFeature.cs
- GenericIdentity.cs
- XmlLanguage.cs
- StorageSetMapping.cs
- activationcontext.cs
- MessagingActivityHelper.cs
- SimpleHandlerBuildProvider.cs
- XmlNodeChangedEventArgs.cs
- NativeBuffer.cs
- OutputCacheProfileCollection.cs
- CompositeFontFamily.cs
- MessagePropertyAttribute.cs
- QilInvoke.cs
- DependencyPropertyKind.cs
- Rect3D.cs
- Set.cs
- TypeDelegator.cs
- Scheduling.cs
- SBCSCodePageEncoding.cs
- ContextTokenTypeConverter.cs
- Column.cs
- WindowsAltTab.cs
- ConfigsHelper.cs
- ConvertBinder.cs
- FrameworkElement.cs
- PersistencePipeline.cs
- XmlSchema.cs
- Touch.cs
- EncoderExceptionFallback.cs
- ChangeNode.cs
- CollectionsUtil.cs
- AttachedPropertyMethodSelector.cs
- RadioButton.cs
- Transform3DGroup.cs
- AssemblyBuilderData.cs
- ToolStripDropDownButton.cs
- SqlDataSourceParameterParser.cs
- TableProviderWrapper.cs
- ControlType.cs
- X509Certificate2Collection.cs
- TiffBitmapDecoder.cs
- ProcessInfo.cs
- VirtualPathProvider.cs
- ObjectStateEntryDbUpdatableDataRecord.cs
- ToolboxItemSnapLineBehavior.cs
- RenderTargetBitmap.cs
- GCHandleCookieTable.cs
- DbSetClause.cs
- graph.cs
- CurrencyManager.cs
- Slider.cs
- CSharpCodeProvider.cs
- SqlRetyper.cs
- EmbeddedMailObjectsCollection.cs
- NumberFunctions.cs
- BamlRecordWriter.cs
- GroupItemAutomationPeer.cs
- Rotation3D.cs
- FormClosedEvent.cs
- FamilyCollection.cs
- Helpers.cs
- HttpAsyncResult.cs
- Vector3D.cs
- DataColumn.cs
- LocalizableResourceBuilder.cs
- BindingListCollectionView.cs
- DynamicPhysicalDiscoSearcher.cs
- DesignerLoader.cs
- BCryptNative.cs
- SourceLocation.cs
- Missing.cs
- RowUpdatedEventArgs.cs
- CssClassPropertyAttribute.cs
- UriParserTemplates.cs
- LassoSelectionBehavior.cs
- StreamGeometry.cs
- EnvironmentPermission.cs
- ExceptionHandlerDesigner.cs
- Point3DIndependentAnimationStorage.cs
- TextEditorLists.cs
- FreezableDefaultValueFactory.cs
- SchemaHelper.cs
- AnnotationHelper.cs
- InputBinding.cs
- ExpressionHelper.cs
- FileUpload.cs
- ShaderEffect.cs
- Propagator.JoinPropagator.cs