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
- ServiceNameCollection.cs
- PointLight.cs
- ActivationServices.cs
- WebPartConnectionsConfigureVerb.cs
- PreservationFileReader.cs
- QueryStringParameter.cs
- Ray3DHitTestResult.cs
- WindowsGraphicsCacheManager.cs
- DecoderFallbackWithFailureFlag.cs
- SqlReorderer.cs
- Label.cs
- CodePrimitiveExpression.cs
- Atom10FormatterFactory.cs
- TagMapInfo.cs
- AssemblySettingAttributes.cs
- WebPartTransformerCollection.cs
- LinqMaximalSubtreeNominator.cs
- COM2Enum.cs
- XamlWriter.cs
- MissingMemberException.cs
- DataBindingHandlerAttribute.cs
- UnmanagedMemoryStream.cs
- ServicesUtilities.cs
- Quaternion.cs
- OleDbConnection.cs
- EndpointIdentityExtension.cs
- ContentValidator.cs
- XmlEntity.cs
- GacUtil.cs
- BasicExpressionVisitor.cs
- CompositeDataBoundControl.cs
- TrackingProfile.cs
- WebServiceEnumData.cs
- SystemPens.cs
- CheckBoxList.cs
- DataGridViewRowHeaderCell.cs
- SaveFileDialog.cs
- HtmlControlPersistable.cs
- PersianCalendar.cs
- SqlServer2KCompatibilityAnnotation.cs
- DetailsViewDeletedEventArgs.cs
- RecordsAffectedEventArgs.cs
- SerializationStore.cs
- AsyncPostBackErrorEventArgs.cs
- DoubleLinkList.cs
- StylusPointPropertyId.cs
- SchemaConstraints.cs
- VirtualPathData.cs
- DomNameTable.cs
- LayoutEngine.cs
- TemplateBamlRecordReader.cs
- ResolveResponseInfo.cs
- EntitySqlQueryBuilder.cs
- SBCSCodePageEncoding.cs
- StateDesigner.LayoutSelectionGlyph.cs
- OracleString.cs
- WriteableBitmap.cs
- SspiWrapper.cs
- EventEntry.cs
- _RequestLifetimeSetter.cs
- LongValidatorAttribute.cs
- UIElement3DAutomationPeer.cs
- AssociationSetEnd.cs
- Scalars.cs
- XmlEntity.cs
- CodeIterationStatement.cs
- ReadOnlyHierarchicalDataSourceView.cs
- ResolveMatchesApril2005.cs
- DayRenderEvent.cs
- ResXFileRef.cs
- StreamInfo.cs
- ContentTextAutomationPeer.cs
- PauseStoryboard.cs
- CachedPathData.cs
- SecurityElement.cs
- Block.cs
- DateTimeFormat.cs
- Item.cs
- DesignBindingConverter.cs
- Vector3D.cs
- ResourceReader.cs
- ItemChangedEventArgs.cs
- ScrollItemPattern.cs
- BitmapEffectInputData.cs
- XmlEncoding.cs
- EmptyQuery.cs
- TreeViewImageGenerator.cs
- Item.cs
- MessageFilterException.cs
- Registration.cs
- SingleSelectRootGridEntry.cs
- RestHandler.cs
- JsonEncodingStreamWrapper.cs
- FormViewModeEventArgs.cs
- BinaryReader.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- SqlDataSourceCache.cs
- ResolveNameEventArgs.cs
- SQLMoneyStorage.cs
- XPathScanner.cs