Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / 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 assertt 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 assertt 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];
}
}
}
// 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
- SizeF.cs
- FilterQueryOptionExpression.cs
- CodeValidator.cs
- AssemblyInfo.cs
- LogicalTreeHelper.cs
- StringResourceManager.cs
- XmlSchemaComplexType.cs
- ToolStripHighContrastRenderer.cs
- OutputCacheProfile.cs
- ActivatedMessageQueue.cs
- BuildResult.cs
- CompilerInfo.cs
- UnsupportedPolicyOptionsException.cs
- TemplateControlCodeDomTreeGenerator.cs
- WebPartCatalogAddVerb.cs
- ConfigXmlSignificantWhitespace.cs
- CodeTypeParameterCollection.cs
- UInt16Converter.cs
- InvalidCastException.cs
- StrokeSerializer.cs
- ReadWriteSpinLock.cs
- CompareValidator.cs
- PrincipalPermissionMode.cs
- DataGridViewCheckBoxCell.cs
- SchemaSetCompiler.cs
- Point3DCollection.cs
- SingleObjectCollection.cs
- SqlProviderServices.cs
- TextMessageEncodingBindingElement.cs
- MessageSecurityProtocolFactory.cs
- ComboBox.cs
- InternalPermissions.cs
- SplineQuaternionKeyFrame.cs
- SqlBinder.cs
- BaseValidatorDesigner.cs
- FixedSOMTextRun.cs
- processwaithandle.cs
- SHA256Managed.cs
- RadioButtonBaseAdapter.cs
- NamedObject.cs
- LocalizationParserHooks.cs
- DataSourceHelper.cs
- ProxyRpc.cs
- DrawItemEvent.cs
- WriteStateInfoBase.cs
- ISAPIRuntime.cs
- FigureHelper.cs
- GridErrorDlg.cs
- FileFormatException.cs
- BitmapEffectInputConnector.cs
- ItemsControl.cs
- WhitespaceSignificantCollectionAttribute.cs
- BreakRecordTable.cs
- TextParaLineResult.cs
- HttpModuleAction.cs
- DataGridViewCellConverter.cs
- ListArgumentProvider.cs
- ObjectAnimationUsingKeyFrames.cs
- Geometry3D.cs
- LayoutTable.cs
- ControlPropertyNameConverter.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- ImageCollectionCodeDomSerializer.cs
- TdsParserSafeHandles.cs
- ipaddressinformationcollection.cs
- DateTimeParse.cs
- JsonByteArrayDataContract.cs
- Collection.cs
- StrokeCollectionDefaultValueFactory.cs
- XmlDesignerDataSourceView.cs
- _DomainName.cs
- DesignerVerbCollection.cs
- HitTestParameters3D.cs
- CodeChecksumPragma.cs
- SyndicationFeed.cs
- ItemCheckedEvent.cs
- SettingsBase.cs
- TextRangeProviderWrapper.cs
- BindingCompleteEventArgs.cs
- CaseInsensitiveComparer.cs
- BitmapCacheBrush.cs
- WebPartActionVerb.cs
- QuotedStringWriteStateInfo.cs
- DocumentPageHost.cs
- ReadOnlyDataSource.cs
- unitconverter.cs
- AbsoluteQuery.cs
- PerfCounters.cs
- hresults.cs
- IgnoreFileBuildProvider.cs
- TextLine.cs
- Funcletizer.cs
- RoutingConfiguration.cs
- DriveNotFoundException.cs
- QueuePathEditor.cs
- PropertyTabChangedEvent.cs
- DataPagerCommandEventArgs.cs
- XmlDeclaration.cs
- FramingChannels.cs
- IsolatedStorageSecurityState.cs