Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- PriorityQueue.cs
- CompletedAsyncResult.cs
- NonVisualControlAttribute.cs
- XmlSerializerFactory.cs
- SetIterators.cs
- Version.cs
- ConcurrentBag.cs
- HttpWebRequest.cs
- SqlDataReader.cs
- TaskExtensions.cs
- CodeGenerator.cs
- WebPartsPersonalizationAuthorization.cs
- BroadcastEventHelper.cs
- TextServicesCompartment.cs
- followingsibling.cs
- CorrelationManager.cs
- ChangeProcessor.cs
- InputChannel.cs
- DetailsViewCommandEventArgs.cs
- SoapInteropTypes.cs
- ObjectDataProvider.cs
- SoapInteropTypes.cs
- Transform3D.cs
- XamlDesignerSerializationManager.cs
- ExclusiveNamedPipeTransportManager.cs
- EdmConstants.cs
- TcpHostedTransportConfiguration.cs
- StateMachineSubscription.cs
- DictionaryEntry.cs
- Single.cs
- Timer.cs
- MaterializeFromAtom.cs
- FamilyTypefaceCollection.cs
- EventBuilder.cs
- SqlBuilder.cs
- SqlTypeSystemProvider.cs
- TextBoxAutoCompleteSourceConverter.cs
- NamedElement.cs
- MessageEncoderFactory.cs
- TrustLevelCollection.cs
- ProcessModuleCollection.cs
- EmbeddedMailObject.cs
- Quad.cs
- WebPartManager.cs
- CustomValidator.cs
- SplitterEvent.cs
- AddInBase.cs
- DataGridViewCellStyle.cs
- Point3DCollection.cs
- TraceSection.cs
- EmptyStringExpandableObjectConverter.cs
- XmlSchemaNotation.cs
- FactoryMaker.cs
- AssociationSetMetadata.cs
- DataService.cs
- DispatcherProcessingDisabled.cs
- NumberFunctions.cs
- XmlProcessingInstruction.cs
- DefaultParameterValueAttribute.cs
- UnsafeNativeMethods.cs
- ApplicationId.cs
- CodeMemberProperty.cs
- PolyBezierSegment.cs
- InvalidCastException.cs
- SHA1Managed.cs
- DataGridColumnEventArgs.cs
- StringArrayConverter.cs
- AutoCompleteStringCollection.cs
- ThreadLocal.cs
- WorkerRequest.cs
- FormViewDeletedEventArgs.cs
- X509Certificate2.cs
- SmtpMail.cs
- IncrementalCompileAnalyzer.cs
- EnvelopedPkcs7.cs
- SqlDelegatedTransaction.cs
- ProjectionQueryOptionExpression.cs
- InputLanguage.cs
- MethodToken.cs
- UInt32Converter.cs
- MessagePartSpecification.cs
- PolicyValidationException.cs
- keycontainerpermission.cs
- WorkItem.cs
- MimeParameters.cs
- DiagnosticsConfigurationHandler.cs
- XPathDocumentNavigator.cs
- SspiNegotiationTokenAuthenticator.cs
- DeviceFilterEditorDialog.cs
- TimerTable.cs
- CombinedGeometry.cs
- BaseCAMarshaler.cs
- DecimalStorage.cs
- DrawTreeNodeEventArgs.cs
- WarningException.cs
- SafeIUnknown.cs
- ProviderConnectionPoint.cs
- SubclassTypeValidator.cs
- Registry.cs
- DataServiceClientException.cs