Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- NavigationWindowAutomationPeer.cs
- HashCodeCombiner.cs
- WSSecureConversationFeb2005.cs
- ProbeDuplexCD1AsyncResult.cs
- HostingEnvironmentWrapper.cs
- Message.cs
- StrongNameKeyPair.cs
- ListComponentEditorPage.cs
- InvokePattern.cs
- IntegerFacetDescriptionElement.cs
- SystemIPInterfaceProperties.cs
- ProviderUtil.cs
- BaseInfoTable.cs
- DeferredReference.cs
- TimersDescriptionAttribute.cs
- NativeMethods.cs
- EntityModelBuildProvider.cs
- ZipQueryOperator.cs
- ReversePositionQuery.cs
- CodeLinePragma.cs
- IODescriptionAttribute.cs
- ConfigurationManagerHelperFactory.cs
- InputEventArgs.cs
- TimelineGroup.cs
- PrintDocument.cs
- ProcessProtocolHandler.cs
- VideoDrawing.cs
- IdentityHolder.cs
- ScrollableControlDesigner.cs
- ActiveDesignSurfaceEvent.cs
- ProxyWebPart.cs
- DataProtection.cs
- BmpBitmapEncoder.cs
- GeneralTransform.cs
- DrawingCollection.cs
- UpdateExpressionVisitor.cs
- TextModifier.cs
- LabelLiteral.cs
- TreeWalker.cs
- ControlCollection.cs
- Error.cs
- SchemaExporter.cs
- SoapHttpTransportImporter.cs
- CryptoHelper.cs
- ImageIndexConverter.cs
- DoubleKeyFrameCollection.cs
- Axis.cs
- ElementsClipboardData.cs
- InvalidCommandTreeException.cs
- OperationAbortedException.cs
- RowSpanVector.cs
- DataListItemEventArgs.cs
- Parser.cs
- RepeatBehaviorConverter.cs
- SafeNativeMethods.cs
- Timer.cs
- XmlChildNodes.cs
- SoapAttributeAttribute.cs
- SqlExpander.cs
- ServiceMemoryGates.cs
- NameScopePropertyAttribute.cs
- OdbcDataReader.cs
- ChooseAction.cs
- BackStopAuthenticationModule.cs
- AssertHelper.cs
- XmlBinaryReader.cs
- TrimSurroundingWhitespaceAttribute.cs
- BulletedListEventArgs.cs
- GridItemPatternIdentifiers.cs
- TextFragmentEngine.cs
- BatchServiceHost.cs
- ExceptionValidationRule.cs
- StreamingContext.cs
- ObjectListSelectEventArgs.cs
- SignatureToken.cs
- DocumentReference.cs
- PluralizationService.cs
- mongolianshape.cs
- CodeGeneratorOptions.cs
- NameGenerator.cs
- CorrelationManager.cs
- ObjectManager.cs
- PrePostDescendentsWalker.cs
- InternalPermissions.cs
- SuppressMessageAttribute.cs
- NewItemsContextMenuStrip.cs
- ZoneMembershipCondition.cs
- OpenFileDialog.cs
- DesignerTransactionCloseEvent.cs
- RemotingConfigParser.cs
- EventMemberCodeDomSerializer.cs
- dtdvalidator.cs
- Decoder.cs
- ToolStripHighContrastRenderer.cs
- ReplacementText.cs
- DatagridviewDisplayedBandsData.cs
- KeyEvent.cs
- HttpContext.cs
- UnsettableComboBox.cs
- Page.cs