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
- Fault.cs
- SettingsAttributes.cs
- EnumDataContract.cs
- Win32KeyboardDevice.cs
- DataGridViewRowConverter.cs
- RNGCryptoServiceProvider.cs
- Transactions.cs
- DataRowView.cs
- ComponentCollection.cs
- XmlUtilWriter.cs
- SparseMemoryStream.cs
- SafeRightsManagementQueryHandle.cs
- SystemIcmpV6Statistics.cs
- CodeCommentStatement.cs
- Figure.cs
- ConfigurationLocation.cs
- MultiDataTrigger.cs
- SoapProtocolImporter.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- XamlPointCollectionSerializer.cs
- AccessorTable.cs
- InternalBase.cs
- ToolStripItemTextRenderEventArgs.cs
- ModuleBuilderData.cs
- HtmlInputText.cs
- PriorityQueue.cs
- RangeValuePattern.cs
- FileChangeNotifier.cs
- IPEndPoint.cs
- WindowsFont.cs
- SessionSwitchEventArgs.cs
- XmlSchemaSimpleContentExtension.cs
- LabelLiteral.cs
- ReservationCollection.cs
- GlobalItem.cs
- StoreAnnotationsMap.cs
- WebPartZoneBase.cs
- DrawToolTipEventArgs.cs
- PersonalizationProviderCollection.cs
- Size3DValueSerializer.cs
- StringKeyFrameCollection.cs
- ConnectionsZone.cs
- LinkArea.cs
- PrivilegeNotHeldException.cs
- UnsafeNativeMethods.cs
- PageWrapper.cs
- TimeSpan.cs
- FileAuthorizationModule.cs
- WebControlAdapter.cs
- LineGeometry.cs
- DispatchWrapper.cs
- TableCellCollection.cs
- PathFigureCollectionConverter.cs
- ItemList.cs
- FreeIndexList.cs
- WebBrowserSiteBase.cs
- ImageField.cs
- RequestDescription.cs
- MenuItemCollection.cs
- FormViewDesigner.cs
- LineMetrics.cs
- GridViewColumnHeaderAutomationPeer.cs
- LiteralTextParser.cs
- EntityViewGenerationConstants.cs
- FormsAuthenticationConfiguration.cs
- ApplicationCommands.cs
- TextRangeEditLists.cs
- ClientSettings.cs
- Cloud.cs
- FlowDocumentPageViewerAutomationPeer.cs
- RewritingPass.cs
- SafeFileMappingHandle.cs
- NetworkInterface.cs
- RightsManagementInformation.cs
- GreaterThanOrEqual.cs
- ExtensionFile.cs
- ProcessHostServerConfig.cs
- ActiveXHelper.cs
- ProviderConnectionPoint.cs
- BrowserCapabilitiesCompiler.cs
- DbConnectionStringCommon.cs
- CriticalFinalizerObject.cs
- ZipIOBlockManager.cs
- webeventbuffer.cs
- FormatConvertedBitmap.cs
- input.cs
- DataBoundLiteralControl.cs
- CachedTypeface.cs
- FilterableData.cs
- objectresult_tresulttype.cs
- Point3DValueSerializer.cs
- FactoryGenerator.cs
- AlphaSortedEnumConverter.cs
- SecurityTokenSerializer.cs
- ControlParameter.cs
- HttpHandlerActionCollection.cs
- ChangeBlockUndoRecord.cs
- TypeConverterValueSerializer.cs
- PipelineDeploymentState.cs
- CompositionTarget.cs