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
- FigureParaClient.cs
- Journaling.cs
- EventManager.cs
- StylesEditorDialog.cs
- Utils.cs
- BmpBitmapEncoder.cs
- DataGridViewRow.cs
- TypeLoadException.cs
- XmlSchemaCompilationSettings.cs
- DataChangedEventManager.cs
- AnimationStorage.cs
- WinEventWrap.cs
- MouseBinding.cs
- SystemParameters.cs
- RoleService.cs
- HttpMethodAttribute.cs
- ConnectionPoolManager.cs
- UnmanagedMemoryStream.cs
- ConfigXmlText.cs
- Operator.cs
- RoutedEventArgs.cs
- ScalarType.cs
- Slider.cs
- RuleProcessor.cs
- AllMembershipCondition.cs
- IriParsingElement.cs
- WebBrowser.cs
- AnnotationComponentManager.cs
- DefinitionUpdate.cs
- SafeBitVector32.cs
- StandardToolWindows.cs
- Scene3D.cs
- MsmqVerifier.cs
- COAUTHINFO.cs
- RectKeyFrameCollection.cs
- CheckPair.cs
- ClientApiGenerator.cs
- IISMapPath.cs
- AtomServiceDocumentSerializer.cs
- ManualResetEvent.cs
- SourceSwitch.cs
- BigInt.cs
- SQLDoubleStorage.cs
- designeractionbehavior.cs
- SemaphoreSecurity.cs
- BinHexEncoding.cs
- ScrollProperties.cs
- QueryExpr.cs
- MatrixTransform.cs
- SmiEventSink_DeferedProcessing.cs
- metadatamappinghashervisitor.cs
- DataMemberFieldEditor.cs
- RsaSecurityKey.cs
- TextCharacters.cs
- PeerNameRecord.cs
- SvcMapFileLoader.cs
- RadialGradientBrush.cs
- CompletedAsyncResult.cs
- OracleConnectionStringBuilder.cs
- TransformerInfoCollection.cs
- HttpClientCertificate.cs
- Path.cs
- OutputCacheSettings.cs
- Viewport2DVisual3D.cs
- ConnectionPointCookie.cs
- CellLabel.cs
- FloaterBaseParagraph.cs
- WindowsEditBoxRange.cs
- ContentFilePart.cs
- AsyncCompletedEventArgs.cs
- AddressHeaderCollectionElement.cs
- QueryResponse.cs
- TdsParserStaticMethods.cs
- MutexSecurity.cs
- EntityCodeGenerator.cs
- SymbolMethod.cs
- GCHandleCookieTable.cs
- CodeAttributeDeclarationCollection.cs
- PageBreakRecord.cs
- UpdateProgress.cs
- XmlSortKey.cs
- WsatAdminException.cs
- Int16.cs
- XmlDocumentType.cs
- TemplateBindingExpression.cs
- CheckBoxList.cs
- BitmapFrame.cs
- MouseWheelEventArgs.cs
- XPathNavigatorKeyComparer.cs
- SqlTypeSystemProvider.cs
- KeyNotFoundException.cs
- Int16Storage.cs
- MessageQueueEnumerator.cs
- SubtreeProcessor.cs
- BoundPropertyEntry.cs
- CurrentChangingEventArgs.cs
- DocumentOrderComparer.cs
- GetPageNumberCompletedEventArgs.cs
- counter.cs
- SqlDataReader.cs