Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- WorkflowTraceTransfer.cs
- PipeSecurity.cs
- GridViewRowPresenterBase.cs
- SemanticBasicElement.cs
- FigureHelper.cs
- CultureInfoConverter.cs
- RenderDataDrawingContext.cs
- PreservationFileWriter.cs
- ValidationPropertyAttribute.cs
- LinqDataView.cs
- WorkflowInstanceQuery.cs
- MobileListItem.cs
- IsolatedStoragePermission.cs
- EdmType.cs
- Compiler.cs
- Buffer.cs
- FontUnit.cs
- ToolBarPanel.cs
- MetafileHeaderEmf.cs
- SqlDataSourceFilteringEventArgs.cs
- UpdateTranslator.cs
- HttpStaticObjectsCollectionWrapper.cs
- TreeIterator.cs
- DodSequenceMerge.cs
- ServiceNameCollection.cs
- RuntimeResourceSet.cs
- SourceChangedEventArgs.cs
- HttpModuleAction.cs
- WindowsListViewScroll.cs
- BaseConfigurationRecord.cs
- CounterSampleCalculator.cs
- EventLogTraceListener.cs
- Char.cs
- ReferencedAssembly.cs
- PageParser.cs
- UnsignedPublishLicense.cs
- designeractionbehavior.cs
- _FtpControlStream.cs
- DataGridViewTextBoxCell.cs
- VisualTarget.cs
- RecordBuilder.cs
- OneToOneMappingSerializer.cs
- MulticastNotSupportedException.cs
- MyContact.cs
- PageStatePersister.cs
- ThemeDirectoryCompiler.cs
- GridViewRowCollection.cs
- NextPreviousPagerField.cs
- MulticastIPAddressInformationCollection.cs
- TemplateGroupCollection.cs
- ResourcePermissionBaseEntry.cs
- DependencyPropertyConverter.cs
- OleDbConnection.cs
- HostingEnvironment.cs
- Publisher.cs
- PolyQuadraticBezierSegment.cs
- UnsafeCollabNativeMethods.cs
- CatalogPartCollection.cs
- SimpleBitVector32.cs
- SendMailErrorEventArgs.cs
- Triangle.cs
- RequestCachePolicyConverter.cs
- invalidudtexception.cs
- ViewManager.cs
- ServiceHostFactory.cs
- ControlCachePolicy.cs
- GeometryGroup.cs
- ValidationHelpers.cs
- SqlLiftWhereClauses.cs
- PrimaryKeyTypeConverter.cs
- SystemIPAddressInformation.cs
- Keywords.cs
- WebPartConnectionsConfigureVerb.cs
- Int16AnimationUsingKeyFrames.cs
- PropertyAccessVisitor.cs
- ImageListStreamer.cs
- BinaryWriter.cs
- LayoutEditorPart.cs
- CircleHotSpot.cs
- DataGridViewControlCollection.cs
- AncillaryOps.cs
- OpenTypeCommon.cs
- RijndaelManaged.cs
- BaseCodeDomTreeGenerator.cs
- Soap11ServerProtocol.cs
- KerberosTicketHashIdentifierClause.cs
- SessionStateModule.cs
- ParameterEditorUserControl.cs
- StyleXamlParser.cs
- SmiEventSink_Default.cs
- MonitoringDescriptionAttribute.cs
- GroupStyle.cs
- TransformPattern.cs
- HttpCachePolicyWrapper.cs
- DataServiceHostFactory.cs
- InvalidEnumArgumentException.cs
- BodyWriter.cs
- SchemaHelper.cs
- BaseConfigurationRecord.cs
- HtmlInputPassword.cs