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
- HtmlShim.cs
- ToolStripContextMenu.cs
- ToolStripMenuItemCodeDomSerializer.cs
- VisualStyleElement.cs
- QuaternionConverter.cs
- RefreshInfo.cs
- ClusterRegistryConfigurationProvider.cs
- DataSetUtil.cs
- XmlBindingWorker.cs
- GeometryModel3D.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- ParseElement.cs
- DataGridTableCollection.cs
- SByteConverter.cs
- SpotLight.cs
- WorkflowHostingResponseContext.cs
- UrlAuthFailureHandler.cs
- DBDataPermission.cs
- Latin1Encoding.cs
- PriorityItem.cs
- ValidationSummary.cs
- LocationSectionRecord.cs
- EUCJPEncoding.cs
- CompilerError.cs
- SerializationHelper.cs
- ValidationErrorEventArgs.cs
- SmiEventStream.cs
- EmptyStringExpandableObjectConverter.cs
- InitializerFacet.cs
- RegexCompilationInfo.cs
- PhysicalFontFamily.cs
- SynchronizedInputHelper.cs
- ChannelManager.cs
- wmiprovider.cs
- TextTreeInsertElementUndoUnit.cs
- ApplicationGesture.cs
- HandlerFactoryCache.cs
- IBuiltInEvidence.cs
- ListViewCommandEventArgs.cs
- ApplicationBuildProvider.cs
- SqlInternalConnectionTds.cs
- PartitionResolver.cs
- MimeTextImporter.cs
- HandleValueEditor.cs
- SqlDataSourceEnumerator.cs
- RelationshipConstraintValidator.cs
- PropertyNames.cs
- ViewValidator.cs
- CounterCreationDataCollection.cs
- NameHandler.cs
- PersianCalendar.cs
- ISO2022Encoding.cs
- CodeDOMProvider.cs
- AuthenticationServiceManager.cs
- PolyBezierSegment.cs
- InputLangChangeEvent.cs
- AnimationTimeline.cs
- InputBinding.cs
- AuthenticatedStream.cs
- DynamicMetaObject.cs
- GridViewUpdatedEventArgs.cs
- FontInfo.cs
- FacetEnabledSchemaElement.cs
- CultureTable.cs
- MsmqInputMessage.cs
- GridViewCommandEventArgs.cs
- ArithmeticException.cs
- UnsafeNativeMethods.cs
- FileAuthorizationModule.cs
- CodeNamespaceCollection.cs
- __ComObject.cs
- mactripleDES.cs
- DataGridCheckBoxColumn.cs
- CompilerResults.cs
- WebCategoryAttribute.cs
- XsdBuilder.cs
- SQLUtility.cs
- DocumentViewerBase.cs
- AssemblyBuilder.cs
- PolyBezierSegment.cs
- Inflater.cs
- VisualStyleInformation.cs
- KnownAssembliesSet.cs
- EventRouteFactory.cs
- XhtmlBasicCommandAdapter.cs
- ResourceManagerWrapper.cs
- BaseConfigurationRecord.cs
- PeerToPeerException.cs
- PathBox.cs
- AutomationPropertyInfo.cs
- HostingEnvironmentSection.cs
- TypeUtil.cs
- SoapReflectionImporter.cs
- NCryptSafeHandles.cs
- MarkupObject.cs
- Int16Converter.cs
- ManualWorkflowSchedulerService.cs
- ReadOnlyTernaryTree.cs
- ListItemViewControl.cs
- FunctionMappingTranslator.cs