Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Configuration / System / Configuration / ConfigurationPermission.cs / 1 / ConfigurationPermission.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
using System.Security;
using System.Security.Permissions;
using System.Globalization;
[AttributeUsage(AttributeTargets.All, AllowMultiple=true, Inherited=false )]
[Serializable]
sealed public class ConfigurationPermissionAttribute : CodeAccessSecurityAttribute
{
public ConfigurationPermissionAttribute(SecurityAction action) : base(action) {}
public override IPermission CreatePermission() {
PermissionState state = (this.Unrestricted) ?
PermissionState.Unrestricted : PermissionState.None;
return new ConfigurationPermission(state);
}
}
//
// ConfigurationPermission is used to grant access to configuration sections that
// would not otherwise be available if the caller attempted to read the configuration
// files that make up configuration.
//
// The permission is a simple boolean one - it is either fully granted or denied.
// This boolean state is represented by using the PermissionState enumeration.
//
[Serializable]
public sealed class ConfigurationPermission : CodeAccessPermission, IUnrestrictedPermission {
private PermissionState _permissionState; // Unrestricted or None
//
// Creates a new instance of ConfigurationPermission
// that passes all demands or that fails all demands.
//
public ConfigurationPermission(PermissionState state) {
// validate state parameter
switch (state) {
case PermissionState.Unrestricted:
case PermissionState.None:
_permissionState = state;
break;
default:
throw ExceptionUtil.ParameterInvalid("state");
}
}
//
// IUnrestrictedPermission interface methods
//
//
// Checks the overall permission state of the object.
//
public bool IsUnrestricted() {
return _permissionState == PermissionState.Unrestricted;
}
//
// Creates a copy.
//
public override IPermission Copy () {
return new ConfigurationPermission(_permissionState);
}
//
// Returns the logical union between ConfigurationPermission instances.
//
public override IPermission Union(IPermission target) {
if (target == null) {
return Copy();
}
if (target.GetType() != typeof(ConfigurationPermission)) {
throw ExceptionUtil.ParameterInvalid("target");
}
// Create an Unrestricted permission if either this or other is unrestricted
if (_permissionState == PermissionState.Unrestricted) {
return new ConfigurationPermission(PermissionState.Unrestricted);
}
else {
ConfigurationPermission other = (ConfigurationPermission) target;
return new ConfigurationPermission(other._permissionState);
}
}
//
// Returns the logical intersection between two ConfigurationPermission instances.
//
public override IPermission Intersect(IPermission target) {
if (target == null) {
return null;
}
if (target.GetType() != typeof(ConfigurationPermission)) {
throw ExceptionUtil.ParameterInvalid("target");
}
// Create an None permission if either this or other is None
if (_permissionState == PermissionState.None) {
return new ConfigurationPermission(PermissionState.None);
}
else {
ConfigurationPermission other = (ConfigurationPermission) target;
return new ConfigurationPermission(other._permissionState);
}
}
//
// Compares two ConfigurationPermission instances
//
public override bool IsSubsetOf(IPermission target) {
if (target == null) {
return _permissionState == PermissionState.None;
}
if (target.GetType() != typeof(ConfigurationPermission)) {
throw ExceptionUtil.ParameterInvalid("target");
}
ConfigurationPermission other = (ConfigurationPermission) target;
return (_permissionState == PermissionState.None || other._permissionState == PermissionState.Unrestricted);
}
public override void FromXml(SecurityElement securityElement) {
if (securityElement == null) {
throw new ArgumentNullException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
if (!securityElement.Tag.Equals("IPermission")) {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
string className = securityElement.Attribute("class");
if (className == null) {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
if (className.IndexOf(this.GetType().FullName, StringComparison.Ordinal ) < 0) {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
string version = securityElement.Attribute("version");
if (version != "1") {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"version"));
}
string unrestricted = securityElement.Attribute("Unrestricted");
if (unrestricted == null) {
_permissionState = PermissionState.None;
}
else {
switch (unrestricted) {
case "true":
_permissionState = PermissionState.Unrestricted;
break;
case "false":
_permissionState = PermissionState.None;
break;
default:
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"Unrestricted"));
}
}
}
public override SecurityElement ToXml() {
SecurityElement securityElement = new SecurityElement("IPermission");
securityElement.AddAttribute("class", this.GetType().FullName + ", " + this.GetType().Module.Assembly.FullName.Replace( '\"', '\'' ));
securityElement.AddAttribute("version", "1");
if (IsUnrestricted()) {
securityElement.AddAttribute("Unrestricted", "true");
}
return securityElement;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Configuration {
using System.Security;
using System.Security.Permissions;
using System.Globalization;
[AttributeUsage(AttributeTargets.All, AllowMultiple=true, Inherited=false )]
[Serializable]
sealed public class ConfigurationPermissionAttribute : CodeAccessSecurityAttribute
{
public ConfigurationPermissionAttribute(SecurityAction action) : base(action) {}
public override IPermission CreatePermission() {
PermissionState state = (this.Unrestricted) ?
PermissionState.Unrestricted : PermissionState.None;
return new ConfigurationPermission(state);
}
}
//
// ConfigurationPermission is used to grant access to configuration sections that
// would not otherwise be available if the caller attempted to read the configuration
// files that make up configuration.
//
// The permission is a simple boolean one - it is either fully granted or denied.
// This boolean state is represented by using the PermissionState enumeration.
//
[Serializable]
public sealed class ConfigurationPermission : CodeAccessPermission, IUnrestrictedPermission {
private PermissionState _permissionState; // Unrestricted or None
//
// Creates a new instance of ConfigurationPermission
// that passes all demands or that fails all demands.
//
public ConfigurationPermission(PermissionState state) {
// validate state parameter
switch (state) {
case PermissionState.Unrestricted:
case PermissionState.None:
_permissionState = state;
break;
default:
throw ExceptionUtil.ParameterInvalid("state");
}
}
//
// IUnrestrictedPermission interface methods
//
//
// Checks the overall permission state of the object.
//
public bool IsUnrestricted() {
return _permissionState == PermissionState.Unrestricted;
}
//
// Creates a copy.
//
public override IPermission Copy () {
return new ConfigurationPermission(_permissionState);
}
//
// Returns the logical union between ConfigurationPermission instances.
//
public override IPermission Union(IPermission target) {
if (target == null) {
return Copy();
}
if (target.GetType() != typeof(ConfigurationPermission)) {
throw ExceptionUtil.ParameterInvalid("target");
}
// Create an Unrestricted permission if either this or other is unrestricted
if (_permissionState == PermissionState.Unrestricted) {
return new ConfigurationPermission(PermissionState.Unrestricted);
}
else {
ConfigurationPermission other = (ConfigurationPermission) target;
return new ConfigurationPermission(other._permissionState);
}
}
//
// Returns the logical intersection between two ConfigurationPermission instances.
//
public override IPermission Intersect(IPermission target) {
if (target == null) {
return null;
}
if (target.GetType() != typeof(ConfigurationPermission)) {
throw ExceptionUtil.ParameterInvalid("target");
}
// Create an None permission if either this or other is None
if (_permissionState == PermissionState.None) {
return new ConfigurationPermission(PermissionState.None);
}
else {
ConfigurationPermission other = (ConfigurationPermission) target;
return new ConfigurationPermission(other._permissionState);
}
}
//
// Compares two ConfigurationPermission instances
//
public override bool IsSubsetOf(IPermission target) {
if (target == null) {
return _permissionState == PermissionState.None;
}
if (target.GetType() != typeof(ConfigurationPermission)) {
throw ExceptionUtil.ParameterInvalid("target");
}
ConfigurationPermission other = (ConfigurationPermission) target;
return (_permissionState == PermissionState.None || other._permissionState == PermissionState.Unrestricted);
}
public override void FromXml(SecurityElement securityElement) {
if (securityElement == null) {
throw new ArgumentNullException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
if (!securityElement.Tag.Equals("IPermission")) {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
string className = securityElement.Attribute("class");
if (className == null) {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
if (className.IndexOf(this.GetType().FullName, StringComparison.Ordinal ) < 0) {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"securityElement"));
}
string version = securityElement.Attribute("version");
if (version != "1") {
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"version"));
}
string unrestricted = securityElement.Attribute("Unrestricted");
if (unrestricted == null) {
_permissionState = PermissionState.None;
}
else {
switch (unrestricted) {
case "true":
_permissionState = PermissionState.Unrestricted;
break;
case "false":
_permissionState = PermissionState.None;
break;
default:
throw new ArgumentException(SR.GetString(SR.ConfigurationPermissionBadXml,"Unrestricted"));
}
}
}
public override SecurityElement ToXml() {
SecurityElement securityElement = new SecurityElement("IPermission");
securityElement.AddAttribute("class", this.GetType().FullName + ", " + this.GetType().Module.Assembly.FullName.Replace( '\"', '\'' ));
securityElement.AddAttribute("version", "1");
if (IsUnrestricted()) {
securityElement.AddAttribute("Unrestricted", "true");
}
return securityElement;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeSubDirectoriesCollection.cs
- ControlUtil.cs
- ViewStateChangedEventArgs.cs
- ProfileService.cs
- MimeTypePropertyAttribute.cs
- Table.cs
- CharacterBufferReference.cs
- DecoderNLS.cs
- ContractNamespaceAttribute.cs
- AnnotationDocumentPaginator.cs
- KeyTimeConverter.cs
- MimeXmlImporter.cs
- BreakSafeBase.cs
- CellParaClient.cs
- Graphics.cs
- XmlObjectSerializerWriteContextComplex.cs
- DocumentViewerHelper.cs
- PositiveTimeSpanValidatorAttribute.cs
- ContainerVisual.cs
- ParameterModifier.cs
- TypeSystem.cs
- UserControlBuildProvider.cs
- TrackingRecord.cs
- ImageListUtils.cs
- SafeNativeMethods.cs
- MediaPlayer.cs
- ClaimTypeElement.cs
- RelationshipFixer.cs
- NameTable.cs
- InstanceValue.cs
- DeliveryStrategy.cs
- MobileContainerDesigner.cs
- NameTable.cs
- NativeCppClassAttribute.cs
- Brushes.cs
- AddressAlreadyInUseException.cs
- LoginView.cs
- HandlerFactoryCache.cs
- NetworkInformationException.cs
- SynchronizedDispatch.cs
- TextHintingModeValidation.cs
- AssemblyUtil.cs
- ConfigurationStrings.cs
- SafeSecurityHelper.cs
- XmlHierarchicalDataSourceView.cs
- DataSourceView.cs
- DecoderReplacementFallback.cs
- MenuScrollingVisibilityConverter.cs
- DateTimePicker.cs
- MapPathBasedVirtualPathProvider.cs
- EntityAdapter.cs
- StorageEntityContainerMapping.cs
- MethodImplAttribute.cs
- UIElement3D.cs
- PKCS1MaskGenerationMethod.cs
- DebuggerService.cs
- BasicCommandTreeVisitor.cs
- InputBuffer.cs
- ActivityInterfaces.cs
- ProfileManager.cs
- SkewTransform.cs
- DataGridViewTextBoxEditingControl.cs
- DataBindingList.cs
- CardSpaceException.cs
- BitmapCache.cs
- ReaderWriterLock.cs
- ClientRuntimeConfig.cs
- _WinHttpWebProxyDataBuilder.cs
- StringWriter.cs
- Missing.cs
- MetadataUtilsSmi.cs
- Selector.cs
- Deflater.cs
- ProcessModuleCollection.cs
- IImplicitResourceProvider.cs
- CssStyleCollection.cs
- ConfigurationManagerHelper.cs
- XPathParser.cs
- SmiEventSink_DeferedProcessing.cs
- BindUriHelper.cs
- TextModifierScope.cs
- SafeRightsManagementHandle.cs
- CultureTableRecord.cs
- ClientScriptManager.cs
- HeaderCollection.cs
- Documentation.cs
- NativeMethods.cs
- StyleSelector.cs
- GACMembershipCondition.cs
- ActiveXHelper.cs
- FixedLineResult.cs
- AppSecurityManager.cs
- RoutingSection.cs
- HeaderedItemsControl.cs
- SqlBuilder.cs
- HtmlEncodedRawTextWriter.cs
- SessionEndingEventArgs.cs
- MsmqReceiveParameters.cs
- BuildProvider.cs
- CqlIdentifiers.cs