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
- Bidi.cs
- PointIndependentAnimationStorage.cs
- HandleDictionary.cs
- InternalDispatchObject.cs
- BindingsCollection.cs
- EtwTrace.cs
- SessionEndedEventArgs.cs
- WorkflowServiceNamespace.cs
- ColorTranslator.cs
- ContentControl.cs
- BCLDebug.cs
- TraceHandler.cs
- DBConnection.cs
- WindowsToolbar.cs
- SafeArrayTypeMismatchException.cs
- DataControlButton.cs
- TypeDescriptorContext.cs
- Storyboard.cs
- JoinElimination.cs
- Walker.cs
- DynamicDocumentPaginator.cs
- MdiWindowListStrip.cs
- MobileUserControl.cs
- PriorityBinding.cs
- FormsAuthenticationUser.cs
- ManagementScope.cs
- PropertyDescriptorCollection.cs
- MonthCalendar.cs
- clipboard.cs
- EntityRecordInfo.cs
- PackageStore.cs
- ContentControl.cs
- ResourceDescriptionAttribute.cs
- PersonalizablePropertyEntry.cs
- PrintPreviewGraphics.cs
- InkCanvasSelection.cs
- SecurityContextSecurityTokenParameters.cs
- XslCompiledTransform.cs
- ConfigXmlAttribute.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- AttributeTableBuilder.cs
- TargetConverter.cs
- ColumnCollection.cs
- DetailsViewDeleteEventArgs.cs
- DataGridViewImageCell.cs
- StrongBox.cs
- EntityCollection.cs
- RemotingConfiguration.cs
- BindMarkupExtensionSerializer.cs
- ProxySimple.cs
- HttpRuntimeSection.cs
- UDPClient.cs
- PassportAuthenticationEventArgs.cs
- ReadWriteSpinLock.cs
- CurrentChangedEventManager.cs
- DetailsViewDeletedEventArgs.cs
- RoleManagerSection.cs
- FileAuthorizationModule.cs
- DiagnosticTraceSource.cs
- HtmlImage.cs
- SequenceNumber.cs
- TypeForwardedToAttribute.cs
- RNGCryptoServiceProvider.cs
- GPRECTF.cs
- InternalResources.cs
- ArgumentNullException.cs
- WinEventTracker.cs
- X509Chain.cs
- SafeCoTaskMem.cs
- PaintValueEventArgs.cs
- IPEndPoint.cs
- TrackBar.cs
- Console.cs
- CapabilitiesAssignment.cs
- ConcurrencyMode.cs
- XmlLanguage.cs
- TreeIterator.cs
- SqlDataSourceStatusEventArgs.cs
- SHA512.cs
- X509Utils.cs
- ProgressBarRenderer.cs
- SqlFileStream.cs
- ConfigurationSchemaErrors.cs
- control.ime.cs
- RegisteredDisposeScript.cs
- JsonClassDataContract.cs
- FacetChecker.cs
- QfeChecker.cs
- NumberFormatter.cs
- VirtualPathProvider.cs
- DuplicateWaitObjectException.cs
- Transform.cs
- TypeDescriptionProviderAttribute.cs
- SelectionRange.cs
- DataServiceStreamProviderWrapper.cs
- WCFBuildProvider.cs
- ColumnReorderedEventArgs.cs
- WebPartZoneCollection.cs
- CounterSampleCalculator.cs
- XmlBinaryReaderSession.cs