Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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 : [....] - 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
- TextUtf8RawTextWriter.cs
- PersonalizationProviderCollection.cs
- DataGridViewControlCollection.cs
- ResolveResponse.cs
- Grant.cs
- SizeAnimationUsingKeyFrames.cs
- BaseComponentEditor.cs
- MenuCommandsChangedEventArgs.cs
- FixedPosition.cs
- DetailsViewUpdatedEventArgs.cs
- WebPartCatalogAddVerb.cs
- GuidelineCollection.cs
- GroupStyle.cs
- RotateTransform.cs
- AuthenticationServiceManager.cs
- ComAdminInterfaces.cs
- XmlUtil.cs
- HopperCache.cs
- NumberAction.cs
- QueryProcessor.cs
- ResourcePart.cs
- TabletDevice.cs
- TcpProcessProtocolHandler.cs
- SqlInfoMessageEvent.cs
- SectionVisual.cs
- Style.cs
- Calendar.cs
- TriggerCollection.cs
- Stackframe.cs
- SafeWaitHandle.cs
- WebPartZoneCollection.cs
- MembershipSection.cs
- AsymmetricKeyExchangeFormatter.cs
- PropertyInformation.cs
- Win32SafeHandles.cs
- HwndAppCommandInputProvider.cs
- GlyphTypeface.cs
- CryptoProvider.cs
- UserPersonalizationStateInfo.cs
- TextContainerChangedEventArgs.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- MaterializeFromAtom.cs
- ThreadStateException.cs
- ColumnMap.cs
- StreamingContext.cs
- SharingService.cs
- GeometryCollection.cs
- XmlSerializerVersionAttribute.cs
- XPathParser.cs
- AttributeData.cs
- VisemeEventArgs.cs
- MultiView.cs
- ResourceDisplayNameAttribute.cs
- PackagePartCollection.cs
- HttpTransportSecurity.cs
- MarginsConverter.cs
- String.cs
- XmlElement.cs
- SubpageParagraph.cs
- Internal.cs
- SecurityException.cs
- HttpResponseInternalBase.cs
- RawStylusInputReport.cs
- FormViewInsertedEventArgs.cs
- SendSecurityHeaderElementContainer.cs
- Size3DValueSerializer.cs
- DeclarativeCatalogPartDesigner.cs
- TextContainerHelper.cs
- ipaddressinformationcollection.cs
- ConstraintStruct.cs
- Message.cs
- TimeoutValidationAttribute.cs
- OleStrCAMarshaler.cs
- GcSettings.cs
- Internal.cs
- XmlAttributeAttribute.cs
- ByteStorage.cs
- BackgroundWorker.cs
- isolationinterop.cs
- OperationResponse.cs
- TextTabProperties.cs
- ScaleTransform.cs
- SerializationException.cs
- EventLogEntryCollection.cs
- SchemaCompiler.cs
- WindowsTab.cs
- DataGridViewRowStateChangedEventArgs.cs
- DataGridViewCellEventArgs.cs
- EdgeModeValidation.cs
- StringSource.cs
- SchemaImporter.cs
- SynchronizedInputHelper.cs
- AdRotator.cs
- FrameSecurityDescriptor.cs
- XmlIlVisitor.cs
- PageAction.cs
- TraceSection.cs
- KeyBinding.cs
- PreviewPrintController.cs
- sqlmetadatafactory.cs