Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / Net / System / Net / DnsPermission.cs / 1 / DnsPermission.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
using System.Security;
using System.Security.Permissions;
using System.Globalization;
//NOTE: While DnsPermissionAttribute resides in System.DLL,
// no classes from that DLL are able to make declarative usage of DnsPermission.
[ AttributeUsage( AttributeTargets.Method | AttributeTargets.Constructor |
AttributeTargets.Class | AttributeTargets.Struct |
AttributeTargets.Assembly,
AllowMultiple = true, Inherited = false )]
[Serializable()] sealed public class DnsPermissionAttribute : CodeAccessSecurityAttribute
{
public DnsPermissionAttribute ( SecurityAction action ): base( action )
{
}
public override IPermission CreatePermission()
{
if (Unrestricted) {
return new DnsPermission( PermissionState.Unrestricted);
}
else {
return new DnsPermission( PermissionState.None);
}
}
}
///
///
///
///
[Serializable]
public sealed class DnsPermission : CodeAccessPermission, IUnrestrictedPermission {
private bool m_noRestriction;
///
///
/// Creates a new instance of the
/// class that passes all demands or that fails all demands.
///
///
public DnsPermission(PermissionState state) {
m_noRestriction = (state==PermissionState.Unrestricted);
}
internal DnsPermission(bool free) {
m_noRestriction = free;
}
// IUnrestrictedPermission interface methods
///
///
/// Checks the overall permission state of the object.
///
///
public bool IsUnrestricted() {
return m_noRestriction;
}
// IPermission interface methods
///
///
/// Creates a copy of a instance.
///
///
public override IPermission Copy () {
return new DnsPermission(m_noRestriction);
}
///
/// Returns the logical union between two instances.
///
public override IPermission Union(IPermission target) {
// Pattern suggested by Security engine
if (target==null) {
return this.Copy();
}
DnsPermission other = target as DnsPermission;
if(other == null) {
throw new ArgumentException(SR.GetString(SR.net_perm_target), "target");
}
return new DnsPermission(m_noRestriction || other.m_noRestriction);
}
///
/// Returns the logical intersection between two instances.
///
public override IPermission Intersect(IPermission target) {
// Pattern suggested by Security engine
if (target==null) {
return null;
}
DnsPermission other = target as DnsPermission;
if(other == null) {
throw new ArgumentException(SR.GetString(SR.net_perm_target), "target");
}
// return null if resulting permission is restricted and empty
// Hence, the only way for a bool permission will be.
if (this.m_noRestriction && other.m_noRestriction) {
return new DnsPermission(true);
}
return null;
}
///
/// Compares two instances.
///
public override bool IsSubsetOf(IPermission target) {
// Pattern suggested by Security engine
if (target == null) {
return m_noRestriction == false;
}
DnsPermission other = target as DnsPermission;
if (other == null) {
throw new ArgumentException(SR.GetString(SR.net_perm_target), "target");
}
//Here is the matrix of result based on m_noRestriction for me and she
// me.noRestriction she.noRestriction me.isSubsetOf(she)
// 0 0 1
// 0 1 1
// 1 0 0
// 1 1 1
return (!m_noRestriction || other.m_noRestriction);
}
///
///
public override void FromXml(SecurityElement securityElement) {
if (securityElement == null)
{
//
// null SecurityElement
//
throw new ArgumentNullException("securityElement");
}
if (!securityElement.Tag.Equals("IPermission"))
{
//
// SecurityElement must be a permission element
//
throw new ArgumentException(SR.GetString(SR.net_no_classname), "securityElement");
}
string className = securityElement.Attribute( "class" );
if (className == null)
{
//
// SecurityElement must be a permission element for this type
//
throw new ArgumentException(SR.GetString(SR.net_no_classname), "securityElement");
}
if (className.IndexOf( this.GetType().FullName ) < 0)
{
//
// SecurityElement must be a permission element for this type
//
throw new ArgumentException(SR.GetString(SR.net_no_typename), "securityElement");
}
string str = securityElement.Attribute( "Unrestricted" );
m_noRestriction = (str!=null?(0 == string.Compare( str, "true", StringComparison.OrdinalIgnoreCase)):false);
}
///
/// [To be supplied.]
///
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 (m_noRestriction) {
securityElement.AddAttribute( "Unrestricted", "true" );
}
return securityElement;
}
} // class DnsPermission
} // namespace System.Net
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net {
using System.Security;
using System.Security.Permissions;
using System.Globalization;
//NOTE: While DnsPermissionAttribute resides in System.DLL,
// no classes from that DLL are able to make declarative usage of DnsPermission.
[ AttributeUsage( AttributeTargets.Method | AttributeTargets.Constructor |
AttributeTargets.Class | AttributeTargets.Struct |
AttributeTargets.Assembly,
AllowMultiple = true, Inherited = false )]
[Serializable()] sealed public class DnsPermissionAttribute : CodeAccessSecurityAttribute
{
public DnsPermissionAttribute ( SecurityAction action ): base( action )
{
}
public override IPermission CreatePermission()
{
if (Unrestricted) {
return new DnsPermission( PermissionState.Unrestricted);
}
else {
return new DnsPermission( PermissionState.None);
}
}
}
///
///
///
///
[Serializable]
public sealed class DnsPermission : CodeAccessPermission, IUnrestrictedPermission {
private bool m_noRestriction;
///
///
/// Creates a new instance of the
/// class that passes all demands or that fails all demands.
///
///
public DnsPermission(PermissionState state) {
m_noRestriction = (state==PermissionState.Unrestricted);
}
internal DnsPermission(bool free) {
m_noRestriction = free;
}
// IUnrestrictedPermission interface methods
///
///
/// Checks the overall permission state of the object.
///
///
public bool IsUnrestricted() {
return m_noRestriction;
}
// IPermission interface methods
///
///
/// Creates a copy of a instance.
///
///
public override IPermission Copy () {
return new DnsPermission(m_noRestriction);
}
///
/// Returns the logical union between two instances.
///
public override IPermission Union(IPermission target) {
// Pattern suggested by Security engine
if (target==null) {
return this.Copy();
}
DnsPermission other = target as DnsPermission;
if(other == null) {
throw new ArgumentException(SR.GetString(SR.net_perm_target), "target");
}
return new DnsPermission(m_noRestriction || other.m_noRestriction);
}
///
/// Returns the logical intersection between two instances.
///
public override IPermission Intersect(IPermission target) {
// Pattern suggested by Security engine
if (target==null) {
return null;
}
DnsPermission other = target as DnsPermission;
if(other == null) {
throw new ArgumentException(SR.GetString(SR.net_perm_target), "target");
}
// return null if resulting permission is restricted and empty
// Hence, the only way for a bool permission will be.
if (this.m_noRestriction && other.m_noRestriction) {
return new DnsPermission(true);
}
return null;
}
///
/// Compares two instances.
///
public override bool IsSubsetOf(IPermission target) {
// Pattern suggested by Security engine
if (target == null) {
return m_noRestriction == false;
}
DnsPermission other = target as DnsPermission;
if (other == null) {
throw new ArgumentException(SR.GetString(SR.net_perm_target), "target");
}
//Here is the matrix of result based on m_noRestriction for me and she
// me.noRestriction she.noRestriction me.isSubsetOf(she)
// 0 0 1
// 0 1 1
// 1 0 0
// 1 1 1
return (!m_noRestriction || other.m_noRestriction);
}
///
///
public override void FromXml(SecurityElement securityElement) {
if (securityElement == null)
{
//
// null SecurityElement
//
throw new ArgumentNullException("securityElement");
}
if (!securityElement.Tag.Equals("IPermission"))
{
//
// SecurityElement must be a permission element
//
throw new ArgumentException(SR.GetString(SR.net_no_classname), "securityElement");
}
string className = securityElement.Attribute( "class" );
if (className == null)
{
//
// SecurityElement must be a permission element for this type
//
throw new ArgumentException(SR.GetString(SR.net_no_classname), "securityElement");
}
if (className.IndexOf( this.GetType().FullName ) < 0)
{
//
// SecurityElement must be a permission element for this type
//
throw new ArgumentException(SR.GetString(SR.net_no_typename), "securityElement");
}
string str = securityElement.Attribute( "Unrestricted" );
m_noRestriction = (str!=null?(0 == string.Compare( str, "true", StringComparison.OrdinalIgnoreCase)):false);
}
///
/// [To be supplied.]
///
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 (m_noRestriction) {
securityElement.AddAttribute( "Unrestricted", "true" );
}
return securityElement;
}
} // class DnsPermission
} // namespace System.Net
// 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
- NameValueSectionHandler.cs
- DataErrorValidationRule.cs
- MetadataLocation.cs
- ArraySegment.cs
- TableProviderWrapper.cs
- ECDiffieHellmanPublicKey.cs
- StorageAssociationSetMapping.cs
- TextBoxAutoCompleteSourceConverter.cs
- PersonalizationStateInfo.cs
- WebResponse.cs
- Literal.cs
- ProcessModelSection.cs
- NullableLongAverageAggregationOperator.cs
- ControllableStoryboardAction.cs
- Int32CollectionConverter.cs
- SerializationAttributes.cs
- WeakReferenceKey.cs
- DataGridViewColumnCollection.cs
- LicenseContext.cs
- DtcInterfaces.cs
- EventsTab.cs
- Baml2006ReaderSettings.cs
- TimeZone.cs
- XmlSchemaImporter.cs
- EntityCommandCompilationException.cs
- ArraySet.cs
- CodeNamespaceImportCollection.cs
- MenuItem.cs
- GPPOINTF.cs
- WCFServiceClientProxyGenerator.cs
- TrustLevelCollection.cs
- AttributeEmitter.cs
- ControlBindingsConverter.cs
- PackageProperties.cs
- WhitespaceRuleReader.cs
- TemplateControlBuildProvider.cs
- MessageQueueEnumerator.cs
- DataKeyCollection.cs
- StringUtil.cs
- AvTraceFormat.cs
- DataGridViewCellMouseEventArgs.cs
- XmlDataProvider.cs
- VectorConverter.cs
- WorkflowDispatchContext.cs
- BoolExpressionVisitors.cs
- CatalogZoneAutoFormat.cs
- StringReader.cs
- JpegBitmapEncoder.cs
- ToolStripControlHost.cs
- IPEndPoint.cs
- InternalsVisibleToAttribute.cs
- TypeValidationEventArgs.cs
- MatrixValueSerializer.cs
- MessageSmuggler.cs
- TraceHandler.cs
- FakeModelItemImpl.cs
- WpfWebRequestHelper.cs
- UserCancellationException.cs
- IsolatedStorageException.cs
- ConstraintEnumerator.cs
- JournalEntry.cs
- Binding.cs
- ContextProperty.cs
- FixedTextPointer.cs
- IODescriptionAttribute.cs
- DeleteWorkflowOwnerCommand.cs
- SqlTransaction.cs
- NodeLabelEditEvent.cs
- Signature.cs
- EventWaitHandleSecurity.cs
- DesignerCategoryAttribute.cs
- XPathChildIterator.cs
- Interfaces.cs
- InternalResources.cs
- XmlHierarchyData.cs
- MonitoringDescriptionAttribute.cs
- VScrollProperties.cs
- TextParaLineResult.cs
- IgnoreSection.cs
- AutomationEventArgs.cs
- UserPreferenceChangingEventArgs.cs
- CustomErrorCollection.cs
- DataGridColumnHeaderAutomationPeer.cs
- HtmlListAdapter.cs
- CngUIPolicy.cs
- ToolStripPanel.cs
- ConfigXmlSignificantWhitespace.cs
- Rotation3D.cs
- HtmlHead.cs
- CompressedStack.cs
- GZipDecoder.cs
- ProvidePropertyAttribute.cs
- FirstMatchCodeGroup.cs
- XmlObjectSerializerWriteContext.cs
- sqlstateclientmanager.cs
- ComponentTray.cs
- XmlDocumentFragment.cs
- UniqueIdentifierService.cs
- NonSerializedAttribute.cs
- CustomLineCap.cs