Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / 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 : marka - 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.
//----------------------------------------------------------------------------
//
//
// 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 : marka - 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
- SmtpClient.cs
- ServiceInfo.cs
- TemplatedWizardStep.cs
- SimpleType.cs
- TextParaClient.cs
- xmlglyphRunInfo.cs
- StrongName.cs
- MutableAssemblyCacheEntry.cs
- HtmlAnchor.cs
- BaseDataBoundControl.cs
- VectorCollection.cs
- DynamicObjectAccessor.cs
- _SpnDictionary.cs
- Coordinator.cs
- RuleSettingsCollection.cs
- WebPartDescription.cs
- UriSection.cs
- CollectionExtensions.cs
- Camera.cs
- NoResizeHandleGlyph.cs
- SqlStream.cs
- InheritanceContextHelper.cs
- TreeNodeMouseHoverEvent.cs
- UnsafeNativeMethods.cs
- SiblingIterators.cs
- Compiler.cs
- NeutralResourcesLanguageAttribute.cs
- HashAlgorithm.cs
- PeerCredential.cs
- ScrollItemPattern.cs
- ToolStripContextMenu.cs
- MatrixConverter.cs
- ComponentDispatcherThread.cs
- CommandDevice.cs
- PageThemeParser.cs
- BodyGlyph.cs
- ColumnMapProcessor.cs
- DataControlPagerLinkButton.cs
- BinaryNode.cs
- SapiAttributeParser.cs
- DivideByZeroException.cs
- DoubleUtil.cs
- ReceiveParametersContent.cs
- IteratorFilter.cs
- ToolStripItemClickedEventArgs.cs
- PrintDialog.cs
- QueryStringParameter.cs
- CompositionDesigner.cs
- NegotiateStream.cs
- Dictionary.cs
- HashHelper.cs
- ContentType.cs
- SettingsPropertyWrongTypeException.cs
- MetadataPropertyAttribute.cs
- DataGridRelationshipRow.cs
- FixedPageStructure.cs
- LinkDesigner.cs
- MessageSecurityVersionConverter.cs
- ListCollectionView.cs
- AssemblyAssociatedContentFileAttribute.cs
- XmlDownloadManager.cs
- StateManagedCollection.cs
- METAHEADER.cs
- MenuBindingsEditorForm.cs
- InkCanvasFeedbackAdorner.cs
- LongValidatorAttribute.cs
- AspCompat.cs
- BinaryFormatterWriter.cs
- KnownTypeHelper.cs
- ZoneIdentityPermission.cs
- SerializableAuthorizationContext.cs
- CheckBoxBaseAdapter.cs
- HandlerFactoryCache.cs
- RegexCompiler.cs
- Thread.cs
- EventSinkHelperWriter.cs
- XPathNodeInfoAtom.cs
- TransactionScope.cs
- DurableInstanceContextProvider.cs
- HybridObjectCache.cs
- DataSourceCacheDurationConverter.cs
- WebPartZoneBase.cs
- PropertyEntry.cs
- BaseParaClient.cs
- MenuCommand.cs
- ReadOnlyCollectionBuilder.cs
- TranslateTransform.cs
- ThreadStartException.cs
- srgsitem.cs
- DependencyPropertyAttribute.cs
- ToolTip.cs
- ImageClickEventArgs.cs
- NameSpaceEvent.cs
- OdbcEnvironmentHandle.cs
- ProcessHostServerConfig.cs
- ExtendedPropertiesHandler.cs
- EventSource.cs
- StringDictionaryCodeDomSerializer.cs
- AsymmetricSignatureDeformatter.cs
- GetResponse.cs