Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Policy / Zone.cs / 1 / Zone.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// Zone.cs
//
// Zone is an IIdentity representing Internet/Intranet/MyComputer etc.
//
namespace System.Security.Policy {
using System.Security.Util;
using ZoneIdentityPermission = System.Security.Permissions.ZoneIdentityPermission;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class Zone : IIdentityPermissionFactory, IBuiltInEvidence
{
[OptionalField(VersionAdded = 2)]
private String m_url;
private SecurityZone m_zone;
private static readonly String[] s_names =
{"MyComputer", "Intranet", "Trusted", "Internet", "Untrusted", "NoZone"};
internal Zone()
{
m_url = null;
m_zone = SecurityZone.NoZone;
}
public Zone(SecurityZone zone)
{
if (zone < SecurityZone.NoZone || zone > SecurityZone.Untrusted)
throw new ArgumentException( Environment.GetResourceString( "Argument_IllegalZone" ) );
m_url = null;
m_zone = zone;
}
private Zone(String url)
{
m_url = url;
m_zone = SecurityZone.NoZone;
}
public static Zone CreateFromUrl( String url )
{
if (url == null)
throw new ArgumentNullException( "url" );
return new Zone( url );
}
[MethodImplAttribute(MethodImplOptions.InternalCall)]
private extern static SecurityZone _CreateFromUrl( String url );
public IPermission CreateIdentityPermission( Evidence evidence )
{
return new ZoneIdentityPermission( SecurityZone );
}
public SecurityZone SecurityZone
{
get
{
if (m_url != null)
m_zone = _CreateFromUrl( m_url );
return m_zone;
}
}
public override bool Equals(Object o)
{
if (o is Zone)
{
Zone z = (Zone) o;
return SecurityZone == z.SecurityZone;
}
return false;
}
public override int GetHashCode()
{
return (int)SecurityZone;
}
public Object Copy()
{
Zone z = new Zone();
z.m_zone = m_zone;
z.m_url = m_url;
return z;
}
internal SecurityElement ToXml()
{
SecurityElement elem = new SecurityElement( "System.Security.Policy.Zone" );
// If you hit this assert then most likely you are trying to change the name of this class.
// This is ok as long as you change the hard coded string above and change the assert below.
BCLDebug.Assert( this.GetType().FullName.Equals( "System.Security.Policy.Zone" ), "Class name changed!" );
elem.AddAttribute( "version", "1" );
if (SecurityZone != SecurityZone.NoZone)
elem.AddChild( new SecurityElement( "Zone", s_names[(int)SecurityZone] ) );
else
elem.AddChild( new SecurityElement( "Zone", s_names[s_names.Length-1] ) );
return elem;
}
///
int IBuiltInEvidence.OutputToBuffer( char[] buffer, int position, bool verbose )
{
buffer[position] = BuiltInEvidenceHelper.idZone;
BuiltInEvidenceHelper.CopyIntToCharArray( (int)SecurityZone, buffer, position + 1 );
return position + 3;
}
///
int IBuiltInEvidence.GetRequiredSize(bool verbose)
{
return 3;
}
///
int IBuiltInEvidence.InitFromBuffer( char[] buffer, int position )
{
m_url = null;
m_zone = (SecurityZone)BuiltInEvidenceHelper.GetIntFromCharArray(buffer, position);
return position + 2;
}
public override String ToString()
{
return ToXml().ToString();
}
// INormalizeForIsolatedStorage is not implemented for startup perf
// equivalent to INormalizeForIsolatedStorage.Normalize()
internal Object Normalize()
{
return s_names[(int)SecurityZone];
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PageCatalogPart.cs
- SqlException.cs
- DataSourceHelper.cs
- SpStreamWrapper.cs
- Cell.cs
- ConnectionStringsExpressionEditor.cs
- FileDialog_Vista_Interop.cs
- DeviceOverridableAttribute.cs
- OutputCacheSettingsSection.cs
- Permission.cs
- OdbcReferenceCollection.cs
- RedirectionProxy.cs
- XmlAttributeOverrides.cs
- PrinterResolution.cs
- CommandLibraryHelper.cs
- DistinctQueryOperator.cs
- PictureBox.cs
- NumericExpr.cs
- EventMappingSettingsCollection.cs
- SettingsProviderCollection.cs
- ClientScriptItemCollection.cs
- DriveNotFoundException.cs
- SimpleBitVector32.cs
- ColumnCollection.cs
- ToolStripContentPanelDesigner.cs
- ThicknessKeyFrameCollection.cs
- SelectionItemProviderWrapper.cs
- QueryCacheEntry.cs
- AutomationIdentifierGuids.cs
- GeneralTransform2DTo3DTo2D.cs
- _emptywebproxy.cs
- PathFigureCollectionConverter.cs
- DetailsViewPageEventArgs.cs
- CapabilitiesSection.cs
- TypeSystemHelpers.cs
- CheckedPointers.cs
- DynamicControl.cs
- WebPartZoneBase.cs
- DuplexChannel.cs
- ExtenderProvidedPropertyAttribute.cs
- ManagementInstaller.cs
- PrtCap_Builder.cs
- XmlMembersMapping.cs
- WebRequest.cs
- ErrorCodes.cs
- PluralizationService.cs
- CroppedBitmap.cs
- MailHeaderInfo.cs
- UpDownEvent.cs
- IisTraceWebEventProvider.cs
- ComNativeDescriptor.cs
- RadioButtonAutomationPeer.cs
- LinkedList.cs
- SimpleTypesSurrogate.cs
- AccessibleObject.cs
- IsolatedStorageException.cs
- SystemKeyConverter.cs
- DataSourceViewSchemaConverter.cs
- ContractUtils.cs
- ChannelPool.cs
- ClientData.cs
- VersionUtil.cs
- Function.cs
- GridViewSelectEventArgs.cs
- DropAnimation.xaml.cs
- WorkflowValidationFailedException.cs
- NTAccount.cs
- XhtmlBasicTextBoxAdapter.cs
- WeakEventTable.cs
- SchemaAttDef.cs
- SoapInteropTypes.cs
- WebServiceEnumData.cs
- RadioButtonFlatAdapter.cs
- TraceContextRecord.cs
- LinkButton.cs
- EntityDesignerDataSourceView.cs
- DataExpression.cs
- SqlAggregateChecker.cs
- ObjectListCommandEventArgs.cs
- AtlasWeb.Designer.cs
- QilTargetType.cs
- GC.cs
- QueryConverter.cs
- DataControlFieldCell.cs
- ControlType.cs
- DataGridViewComboBoxColumn.cs
- PackagePart.cs
- CodeTypeDeclarationCollection.cs
- SimpleTypeResolver.cs
- EventLogPermissionAttribute.cs
- CodeSubDirectory.cs
- EventProxy.cs
- HashRepartitionEnumerator.cs
- WebContentFormatHelper.cs
- EnterpriseServicesHelper.cs
- ListControlBoundActionList.cs
- CompositeScriptReferenceEventArgs.cs
- AlternateView.cs
- GotoExpression.cs
- MultiAsyncResult.cs