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
- ScrollBar.cs
- EventListenerClientSide.cs
- TextSerializer.cs
- WebBrowserPermission.cs
- ExtensionDataReader.cs
- CodeLinePragma.cs
- ImageBrush.cs
- NavigateEvent.cs
- ControlEvent.cs
- StringValueSerializer.cs
- CssTextWriter.cs
- PagePropertiesChangingEventArgs.cs
- XmlTextEncoder.cs
- PageFunction.cs
- Sentence.cs
- SiteMapDataSource.cs
- MenuItem.cs
- AppDomainFactory.cs
- Stroke2.cs
- CodeTypeDeclaration.cs
- StrokeCollection.cs
- SelfIssuedAuthRSACryptoProvider.cs
- Helper.cs
- DesignerActionService.cs
- MessageQuerySet.cs
- BrowserCapabilitiesFactory35.cs
- JsonMessageEncoderFactory.cs
- ValuePattern.cs
- HttpCapabilitiesEvaluator.cs
- ListViewContainer.cs
- XmlBinaryReader.cs
- Rfc2898DeriveBytes.cs
- CustomAttributeSerializer.cs
- ByeMessage11.cs
- DeferredReference.cs
- PathGeometry.cs
- DBConcurrencyException.cs
- ProfilePropertyNameValidator.cs
- PerfService.cs
- CounterCreationDataCollection.cs
- TextEncodedRawTextWriter.cs
- NameNode.cs
- Table.cs
- NativeMethods.cs
- CroppedBitmap.cs
- TextEditorSelection.cs
- QilList.cs
- XmlUtilWriter.cs
- CodeGenerationManager.cs
- DataGridViewEditingControlShowingEventArgs.cs
- InvalidPrinterException.cs
- SecurityCriticalDataForSet.cs
- AbstractExpressions.cs
- Tile.cs
- SHA384Managed.cs
- CompositeCollectionView.cs
- RelationshipDetailsCollection.cs
- XmlNavigatorStack.cs
- TypeDescriptionProviderAttribute.cs
- HuffModule.cs
- DocumentOutline.cs
- EmptyControlCollection.cs
- IisTraceWebEventProvider.cs
- WithParamAction.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- CultureTable.cs
- LineInfo.cs
- _UncName.cs
- HttpHandlersInstallComponent.cs
- WithStatement.cs
- WorkflowMessageEventHandler.cs
- PathFigureCollectionValueSerializer.cs
- WaitHandle.cs
- InteropExecutor.cs
- RefType.cs
- XmlILModule.cs
- ProfileModule.cs
- MustUnderstandSoapException.cs
- CheckableControlBaseAdapter.cs
- MexHttpBindingElement.cs
- DataReceivedEventArgs.cs
- UnhandledExceptionEventArgs.cs
- IntellisenseTextBox.designer.cs
- EqualityComparer.cs
- XmlArrayItemAttributes.cs
- DirectoryRedirect.cs
- BitmapData.cs
- GeneralTransformGroup.cs
- BindingCollection.cs
- SQLString.cs
- TraceEventCache.cs
- GridView.cs
- TemplateKeyConverter.cs
- TextDocumentView.cs
- IpcClientChannel.cs
- DefaultHttpHandler.cs
- SerialPort.cs
- Attributes.cs
- ThreadAttributes.cs
- SettingsAttributes.cs