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
- HttpChannelBindingToken.cs
- FlowDocumentPaginator.cs
- AxDesigner.cs
- PlaceHolder.cs
- WindowManager.cs
- ServiceDescriptionReflector.cs
- SendMailErrorEventArgs.cs
- Util.cs
- XmlMapping.cs
- FixedSOMFixedBlock.cs
- RadioButton.cs
- MemberPathMap.cs
- ApplyImportsAction.cs
- DbParameterHelper.cs
- CustomError.cs
- ExtendedProtectionPolicyElement.cs
- SelectionChangedEventArgs.cs
- TabControl.cs
- TextChangedEventArgs.cs
- WindowsListView.cs
- GeometryDrawing.cs
- SchemaMerger.cs
- SecurityContext.cs
- ViewSimplifier.cs
- AccessDataSourceView.cs
- Publisher.cs
- DataGridRow.cs
- ObjectConverter.cs
- WebBrowserEvent.cs
- ChangeConflicts.cs
- EventPropertyMap.cs
- DbMetaDataFactory.cs
- OrderingQueryOperator.cs
- XamlHostingConfiguration.cs
- PipeStream.cs
- WebPartMinimizeVerb.cs
- WindowsRichEditRange.cs
- SequentialWorkflowHeaderFooter.cs
- DockingAttribute.cs
- __Error.cs
- HMACSHA512.cs
- SizeConverter.cs
- EndpointAddress10.cs
- AssemblyCache.cs
- TreeViewEvent.cs
- SqlMethodCallConverter.cs
- Quaternion.cs
- ApplicationId.cs
- StylusButtonCollection.cs
- remotingproxy.cs
- SchemaTableColumn.cs
- X509Chain.cs
- Application.cs
- BoolExpr.cs
- SpnEndpointIdentityExtension.cs
- SubqueryTrackingVisitor.cs
- NumericUpDown.cs
- SqlGatherProducedAliases.cs
- MsmqIntegrationSecurityElement.cs
- DataControlLinkButton.cs
- XslVisitor.cs
- DependentTransaction.cs
- NumberSubstitution.cs
- GestureRecognitionResult.cs
- EntityParameterCollection.cs
- HitTestFilterBehavior.cs
- TextSelectionHighlightLayer.cs
- Rfc2898DeriveBytes.cs
- TrustLevel.cs
- RemoteWebConfigurationHostServer.cs
- TextSelectionProcessor.cs
- CompiledIdentityConstraint.cs
- SinglePageViewer.cs
- MasterPageCodeDomTreeGenerator.cs
- GPStream.cs
- PlainXmlSerializer.cs
- StringPropertyBuilder.cs
- ToolStripSeparator.cs
- StringPropertyBuilder.cs
- ServicePointManagerElement.cs
- SoapAttributeOverrides.cs
- DesignTimeParseData.cs
- messageonlyhwndwrapper.cs
- FixedTextContainer.cs
- AssemblySettingAttributes.cs
- SingleAnimationUsingKeyFrames.cs
- PerformanceCounterCategory.cs
- ControlBuilder.cs
- Pool.cs
- DependencyPropertyChangedEventArgs.cs
- PeerTransportSecuritySettings.cs
- ViewStateModeByIdAttribute.cs
- WasEndpointConfigContainer.cs
- DataGridViewCellCollection.cs
- ControlCollection.cs
- InternalsVisibleToAttribute.cs
- AsymmetricAlgorithm.cs
- XmlSerializerSection.cs
- SystemMulticastIPAddressInformation.cs
- DataViewListener.cs