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
- DefaultValueConverter.cs
- SafeRightsManagementSessionHandle.cs
- PointAnimationClockResource.cs
- ReachDocumentSequenceSerializerAsync.cs
- RuntimeEnvironment.cs
- SplitterEvent.cs
- ReachObjectContext.cs
- LocalFileSettingsProvider.cs
- PeerResolverBindingElement.cs
- DataMemberFieldConverter.cs
- DataGridViewRowCollection.cs
- TextBoxRenderer.cs
- XmlAttribute.cs
- CustomSignedXml.cs
- StrokeCollection2.cs
- CacheEntry.cs
- SourceFileBuildProvider.cs
- ProxyWebPartManagerDesigner.cs
- DataGridPagerStyle.cs
- Errors.cs
- Version.cs
- ResourceReferenceExpressionConverter.cs
- XslNumber.cs
- DispatcherHookEventArgs.cs
- QueryRewriter.cs
- TracingConnection.cs
- BaseParser.cs
- ReflectPropertyDescriptor.cs
- SpnegoTokenAuthenticator.cs
- RegexCaptureCollection.cs
- StackSpiller.Bindings.cs
- URLString.cs
- PointAnimationBase.cs
- KeyValuePairs.cs
- ProgressBarHighlightConverter.cs
- NullableFloatSumAggregationOperator.cs
- Sql8ConformanceChecker.cs
- PropertyMappingExceptionEventArgs.cs
- PropertyDescriptorCollection.cs
- nulltextnavigator.cs
- EntitySqlQueryBuilder.cs
- DeclaredTypeElement.cs
- DrawItemEvent.cs
- MemberHolder.cs
- XmlSchemaSimpleTypeUnion.cs
- SrgsElementFactory.cs
- VisualBasicSettingsConverter.cs
- DataBindingList.cs
- messageonlyhwndwrapper.cs
- hresults.cs
- TypeLoadException.cs
- ConfigurationProperty.cs
- Point3DKeyFrameCollection.cs
- AxHostDesigner.cs
- StorageConditionPropertyMapping.cs
- ProtocolsConfigurationHandler.cs
- ObjectStateEntry.cs
- SelectingProviderEventArgs.cs
- Html32TextWriter.cs
- FixedSOMPage.cs
- PageAdapter.cs
- ProgressBar.cs
- CallContext.cs
- FileSystemWatcher.cs
- WebPartMenu.cs
- ActivityPropertyReference.cs
- UInt16Storage.cs
- BasicHttpSecurity.cs
- LoadRetryHandler.cs
- BufferedWebEventProvider.cs
- MemoryFailPoint.cs
- ResourceDisplayNameAttribute.cs
- ContentType.cs
- CodeSnippetExpression.cs
- CheckBox.cs
- FontDialog.cs
- OleStrCAMarshaler.cs
- ModifierKeysConverter.cs
- UserControlBuildProvider.cs
- InfoCardAsymmetricCrypto.cs
- XPathExpr.cs
- BoundingRectTracker.cs
- ArgumentFixer.cs
- DataControlCommands.cs
- Configuration.cs
- SpeechEvent.cs
- DesignerCapabilities.cs
- DES.cs
- RijndaelManagedTransform.cs
- sitestring.cs
- DataObject.cs
- ActivityScheduledRecord.cs
- CheckBoxField.cs
- MD5CryptoServiceProvider.cs
- DataGridViewColumnStateChangedEventArgs.cs
- BamlRecordHelper.cs
- mediaclock.cs
- NameValuePair.cs
- DynamicRendererThreadManager.cs
- IntSecurity.cs