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
- ListViewGroupItemCollection.cs
- BlurBitmapEffect.cs
- EncryptedKeyIdentifierClause.cs
- CompModHelpers.cs
- ConfigurationStrings.cs
- DataGridViewEditingControlShowingEventArgs.cs
- StdValidatorsAndConverters.cs
- TextTreeTextBlock.cs
- DecimalConstantAttribute.cs
- TextEditorThreadLocalStore.cs
- SortableBindingList.cs
- DocumentEventArgs.cs
- ListMarkerSourceInfo.cs
- ExtendedTransformFactory.cs
- BaseDataBoundControl.cs
- X509SecurityTokenAuthenticator.cs
- SelectedDatesCollection.cs
- SiteIdentityPermission.cs
- COM2DataTypeToManagedDataTypeConverter.cs
- LinqExpressionNormalizer.cs
- reliableinputsessionchannel.cs
- ErrorWebPart.cs
- NewItemsContextMenuStrip.cs
- MediaContext.cs
- _Rfc2616CacheValidators.cs
- DocumentViewerAutomationPeer.cs
- LogRecordSequence.cs
- DbConnectionClosed.cs
- ChangeInterceptorAttribute.cs
- OracleCommand.cs
- DbXmlEnabledProviderManifest.cs
- XmlDocumentFragment.cs
- RectangleHotSpot.cs
- login.cs
- IncrementalHitTester.cs
- LocatorManager.cs
- XmlUtf8RawTextWriter.cs
- SafeRightsManagementHandle.cs
- MemberInitExpression.cs
- WebPartZoneBase.cs
- PackUriHelper.cs
- TextParaLineResult.cs
- SafeRightsManagementSessionHandle.cs
- Container.cs
- SchemaMapping.cs
- EventSource.cs
- OracleParameterCollection.cs
- DescendantBaseQuery.cs
- ResolveCriteria.cs
- DelegateSerializationHolder.cs
- SQLMembershipProvider.cs
- InputQueue.cs
- WebResourceAttribute.cs
- WrapperSecurityCommunicationObject.cs
- PtsHelper.cs
- DataServiceKeyAttribute.cs
- PageAsyncTaskManager.cs
- coordinatorfactory.cs
- ScriptResourceInfo.cs
- SendMailErrorEventArgs.cs
- CommandBindingCollection.cs
- SecurityException.cs
- SafeCryptoHandles.cs
- LambdaCompiler.Binary.cs
- ProcessHostFactoryHelper.cs
- PersonalizableTypeEntry.cs
- XmlUtilWriter.cs
- CssClassPropertyAttribute.cs
- DynamicFilter.cs
- CacheDict.cs
- WorkflowStateRollbackService.cs
- RectangleGeometry.cs
- TableLayoutCellPaintEventArgs.cs
- DatePickerTextBox.cs
- RequestCacheManager.cs
- SqlCacheDependencySection.cs
- XmlSchemaExternal.cs
- SystemTcpConnection.cs
- ObjectSet.cs
- OLEDB_Util.cs
- ByteStreamGeometryContext.cs
- BackgroundFormatInfo.cs
- DataGridRowsPresenter.cs
- WhileDesigner.cs
- Int16.cs
- ExpressionLexer.cs
- EncodingTable.cs
- ConfigurationException.cs
- WebPermission.cs
- DropTarget.cs
- ProcessThread.cs
- UnsafeMethods.cs
- Timer.cs
- ReadOnlyTernaryTree.cs
- FirstMatchCodeGroup.cs
- EntityTypeEmitter.cs
- HttpWebRequestElement.cs
- EnumType.cs
- NameValuePermission.cs
- KnownTypesHelper.cs