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
- BamlResourceContent.cs
- LocationUpdates.cs
- InvalidOleVariantTypeException.cs
- TaskScheduler.cs
- NumericUpDown.cs
- SqlGenericUtil.cs
- _TLSstream.cs
- PaperSize.cs
- PenContext.cs
- DesignTimeValidationFeature.cs
- ADConnectionHelper.cs
- Document.cs
- DBPropSet.cs
- LabelEditEvent.cs
- printdlgexmarshaler.cs
- SqlConnectionHelper.cs
- ProfileGroupSettings.cs
- sqlpipe.cs
- WebRequestModuleElementCollection.cs
- SiteMapHierarchicalDataSourceView.cs
- DataGridViewComboBoxCell.cs
- PathGeometry.cs
- EmbeddedMailObjectsCollection.cs
- StoreConnection.cs
- CrossAppDomainChannel.cs
- DockProviderWrapper.cs
- XmlWrappingReader.cs
- Attributes.cs
- CorrelationActionMessageFilter.cs
- MonthCalendarDesigner.cs
- SamlAction.cs
- SimpleWebHandlerParser.cs
- StatusBarItemAutomationPeer.cs
- WebPartVerbsEventArgs.cs
- Bezier.cs
- BitmapCodecInfo.cs
- BoundingRectTracker.cs
- AdCreatedEventArgs.cs
- EnumValAlphaComparer.cs
- ComponentChangedEvent.cs
- StyleReferenceConverter.cs
- Utils.cs
- SubMenuStyleCollection.cs
- SortedList.cs
- MethodToken.cs
- HttpModuleCollection.cs
- VisualTreeFlattener.cs
- StrokeNodeOperations2.cs
- GeneralTransform3DCollection.cs
- ListViewItem.cs
- OletxTransactionFormatter.cs
- BaseAutoFormat.cs
- TextBreakpoint.cs
- CachedFontFamily.cs
- EventToken.cs
- ParameterToken.cs
- WebPartCloseVerb.cs
- ExecutorLocksHeldException.cs
- XmlWriter.cs
- ClientConfigurationSystem.cs
- TokenBasedSetEnumerator.cs
- TagPrefixInfo.cs
- PerspectiveCamera.cs
- StoreAnnotationsMap.cs
- HttpWrapper.cs
- FormViewInsertEventArgs.cs
- MergeFailedEvent.cs
- RtfToXamlReader.cs
- GlyphRun.cs
- ReflectionUtil.cs
- WindowsButton.cs
- CommandEventArgs.cs
- DependencyObject.cs
- BindingCompleteEventArgs.cs
- DeferredElementTreeState.cs
- AnimationTimeline.cs
- CodeExpressionCollection.cs
- ServiceReference.cs
- AddInControllerImpl.cs
- FrameSecurityDescriptor.cs
- HtmlInputText.cs
- Rect3DValueSerializer.cs
- GenericIdentity.cs
- ExceptionRoutedEventArgs.cs
- AQNBuilder.cs
- FatalException.cs
- PairComparer.cs
- SynchronousChannel.cs
- DataGridViewCellLinkedList.cs
- ColorBlend.cs
- ResourceContainerWrapper.cs
- HtmlInputFile.cs
- RoutedEventArgs.cs
- GeometryDrawing.cs
- DataServiceRequestOfT.cs
- EventManager.cs
- StringAttributeCollection.cs
- TileBrush.cs
- Stylus.cs
- ScriptingProfileServiceSection.cs