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
- ProcessInfo.cs
- Stacktrace.cs
- FragmentQuery.cs
- DocumentEventArgs.cs
- DoubleAnimationBase.cs
- XmlnsCompatibleWithAttribute.cs
- SharedConnectionWorkflowTransactionService.cs
- ProfessionalColors.cs
- AudioSignalProblemOccurredEventArgs.cs
- CodeEntryPointMethod.cs
- PreviewPrintController.cs
- ContentType.cs
- ExpressionBinding.cs
- Point3DAnimationBase.cs
- Item.cs
- StylusDevice.cs
- ApplicationServicesHostFactory.cs
- UnmanagedMemoryStream.cs
- WindowsHyperlink.cs
- MulticastIPAddressInformationCollection.cs
- BoundingRectTracker.cs
- CodeTypeDeclaration.cs
- XmlSchemaException.cs
- ToolStripManager.cs
- CompilerScopeManager.cs
- SwitchExpression.cs
- ECDiffieHellmanPublicKey.cs
- TextDecorationCollection.cs
- TdsParameterSetter.cs
- ClientSettings.cs
- StylusShape.cs
- EntitySetBaseCollection.cs
- JapaneseLunisolarCalendar.cs
- SingleResultAttribute.cs
- InvokeHandlers.cs
- SqlBooleanMismatchVisitor.cs
- DataTableReaderListener.cs
- LineUtil.cs
- Part.cs
- WebPageTraceListener.cs
- SizeAnimation.cs
- TypeDescriptorFilterService.cs
- Message.cs
- ItemType.cs
- GridViewDeletedEventArgs.cs
- ZipPackage.cs
- XamlToRtfParser.cs
- SchemaDeclBase.cs
- _BaseOverlappedAsyncResult.cs
- DataGridViewCellValidatingEventArgs.cs
- ConfigXmlAttribute.cs
- ISCIIEncoding.cs
- BaseTemplateCodeDomTreeGenerator.cs
- EventMappingSettingsCollection.cs
- FrameworkElementFactoryMarkupObject.cs
- BrowserCapabilitiesCompiler.cs
- ProtectedConfiguration.cs
- HelpKeywordAttribute.cs
- DelegatingConfigHost.cs
- TypeDefinition.cs
- HwndProxyElementProvider.cs
- RNGCryptoServiceProvider.cs
- EnumValidator.cs
- Reference.cs
- SymLanguageType.cs
- ListViewContainer.cs
- StringFunctions.cs
- FieldNameLookup.cs
- RightsManagementInformation.cs
- TraceListener.cs
- Pair.cs
- InvalidProgramException.cs
- ModelService.cs
- XPathParser.cs
- TimerElapsedEvenArgs.cs
- DocumentDesigner.cs
- ListViewGroupConverter.cs
- InfiniteTimeSpanConverter.cs
- MarkupProperty.cs
- ListBoxAutomationPeer.cs
- SQLInt32Storage.cs
- XPathBinder.cs
- IODescriptionAttribute.cs
- SiteMapNode.cs
- SocketException.cs
- Size.cs
- ArraySegment.cs
- HttpWrapper.cs
- IChannel.cs
- DataPager.cs
- XmlSchemaAppInfo.cs
- Module.cs
- AsymmetricAlgorithm.cs
- ApplicationSecurityInfo.cs
- WebSysDescriptionAttribute.cs
- RenderData.cs
- FrameworkElementFactoryMarkupObject.cs
- InkCanvasFeedbackAdorner.cs
- Wizard.cs
- columnmapfactory.cs