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
- HostingEnvironmentSection.cs
- SQlBooleanStorage.cs
- VersionPair.cs
- MergeEnumerator.cs
- AsymmetricAlgorithm.cs
- DocumentGridPage.cs
- Cursor.cs
- AuthenticationService.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- XmlMembersMapping.cs
- GregorianCalendar.cs
- SoapDocumentServiceAttribute.cs
- OdbcStatementHandle.cs
- PackUriHelper.cs
- FontClient.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- EntityConnectionStringBuilderItem.cs
- ExpressionPrefixAttribute.cs
- CoreSwitches.cs
- System.Data_BID.cs
- CompiledQueryCacheEntry.cs
- SqlMethodTransformer.cs
- SslStream.cs
- ToolStripSplitButton.cs
- ReservationCollection.cs
- AsyncOperation.cs
- PointConverter.cs
- FormsAuthenticationConfiguration.cs
- AbstractDataSvcMapFileLoader.cs
- WebDescriptionAttribute.cs
- RubberbandSelector.cs
- XMLUtil.cs
- HttpPostedFileBase.cs
- WebEvents.cs
- DataGridViewRowHeaderCell.cs
- Attributes.cs
- ServicesUtilities.cs
- HttpCacheParams.cs
- DataGridCellEditEndingEventArgs.cs
- PathSegmentCollection.cs
- NavigatorInput.cs
- Directory.cs
- DataGridCommandEventArgs.cs
- EventMappingSettings.cs
- SvcMapFile.cs
- ImageClickEventArgs.cs
- DeviceSpecificDesigner.cs
- DES.cs
- ToolBar.cs
- SafeCryptoHandles.cs
- WebPartConnectionsCancelVerb.cs
- WebPartEditVerb.cs
- CompoundFileDeflateTransform.cs
- RoleServiceManager.cs
- Frame.cs
- TraceRecord.cs
- TraceSection.cs
- CatchDesigner.xaml.cs
- ObservableCollection.cs
- HtmlControl.cs
- ThemeDirectoryCompiler.cs
- GeneralTransformCollection.cs
- CfgSemanticTag.cs
- RequiredAttributeAttribute.cs
- AutomationPatternInfo.cs
- nulltextcontainer.cs
- _LoggingObject.cs
- EntityProxyTypeInfo.cs
- OptionUsage.cs
- DBCommand.cs
- OutputCacheSettings.cs
- NameValueCollection.cs
- documentsequencetextview.cs
- SafeFileHandle.cs
- LinkArea.cs
- ListenerAdapter.cs
- TraversalRequest.cs
- _ProxyRegBlob.cs
- MemberInfoSerializationHolder.cs
- EmitterCache.cs
- SettingsPropertyValueCollection.cs
- DataRowCollection.cs
- ReaderContextStackData.cs
- ExclusiveCanonicalizationTransform.cs
- IdentifierCollection.cs
- ZoomPercentageConverter.cs
- SchemaAttDef.cs
- TemplateBindingExtension.cs
- SessionEndedEventArgs.cs
- AnnotationElement.cs
- FormsAuthenticationModule.cs
- AutoCompleteStringCollection.cs
- ChtmlTextWriter.cs
- ThicknessAnimationBase.cs
- IsolatedStorageFile.cs
- GrammarBuilder.cs
- ModelFunction.cs
- PersianCalendar.cs
- GridViewColumnCollectionChangedEventArgs.cs
- ConfigXmlText.cs