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
- DropDownHolder.cs
- XslCompiledTransform.cs
- SingleKeyFrameCollection.cs
- PopupEventArgs.cs
- DesignerActionItemCollection.cs
- XmlExpressionDumper.cs
- GeometryDrawing.cs
- PkcsUtils.cs
- FunctionUpdateCommand.cs
- OdbcConnectionOpen.cs
- ToolStripRenderer.cs
- BaseCodeDomTreeGenerator.cs
- ModelFunctionTypeElement.cs
- basenumberconverter.cs
- SaveFileDialog.cs
- WebAdminConfigurationHelper.cs
- ExpressionBuilder.cs
- WsatAdminException.cs
- TypeContext.cs
- BindingNavigator.cs
- XmlArrayItemAttributes.cs
- ConnectionsZoneDesigner.cs
- ForceCopyBuildProvider.cs
- HttpHandlerAction.cs
- EdmConstants.cs
- SessionEndingCancelEventArgs.cs
- EntityType.cs
- DbTransaction.cs
- TemplateBamlRecordReader.cs
- AssemblyBuilder.cs
- ColorMatrix.cs
- QuaternionValueSerializer.cs
- HitTestWithPointDrawingContextWalker.cs
- ConfigurationValidatorAttribute.cs
- ProxyManager.cs
- SerializationInfo.cs
- COM2EnumConverter.cs
- VectorConverter.cs
- Perspective.cs
- Int32Rect.cs
- FrameworkTemplate.cs
- OutOfProcStateClientManager.cs
- OdbcCommand.cs
- ResourceReferenceExpression.cs
- SimpleTypesSurrogate.cs
- RequestNavigateEventArgs.cs
- XPathAxisIterator.cs
- ServiceOperation.cs
- DynamicArgumentDesigner.xaml.cs
- EarlyBoundInfo.cs
- DrawingServices.cs
- SaveFileDialogDesigner.cs
- DynamicILGenerator.cs
- InheritanceAttribute.cs
- InlineUIContainer.cs
- UriTemplatePathSegment.cs
- DESCryptoServiceProvider.cs
- DocumentPageViewAutomationPeer.cs
- ScriptReference.cs
- ExpressionBuilder.cs
- ICspAsymmetricAlgorithm.cs
- SqlDependencyListener.cs
- DebuggerAttributes.cs
- UInt64Storage.cs
- DetailsViewDeletedEventArgs.cs
- TextProviderWrapper.cs
- ViewValidator.cs
- HostProtectionException.cs
- RectAnimationUsingKeyFrames.cs
- TryLoadRunnableWorkflowCommand.cs
- ButtonRenderer.cs
- LayoutExceptionEventArgs.cs
- RegexCompiler.cs
- WSDualHttpSecurityMode.cs
- DependentList.cs
- IisTraceWebEventProvider.cs
- ChtmlTextWriter.cs
- CodeTypeDelegate.cs
- SrgsElementList.cs
- DataSourceCollectionBase.cs
- UxThemeWrapper.cs
- DbConnectionOptions.cs
- ActivityPreviewDesigner.cs
- CodeFieldReferenceExpression.cs
- LineServicesCallbacks.cs
- ProfileGroupSettingsCollection.cs
- ObjectAssociationEndMapping.cs
- SqlParameter.cs
- UserNamePasswordServiceCredential.cs
- TreeChangeInfo.cs
- CodeSnippetCompileUnit.cs
- ActivityCodeDomReferenceService.cs
- MemoryResponseElement.cs
- Vector.cs
- Queue.cs
- ControlsConfig.cs
- XmlAutoDetectWriter.cs
- CompositeDispatchFormatter.cs
- BitmapEffectGroup.cs
- UInt32Storage.cs