Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Security / Policy / Site.cs / 1 / Site.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// Site.cs
//
// Site is an IIdentity representing internet sites.
//
namespace System.Security.Policy {
using System.Security.Util;
using System.Globalization;
using SiteIdentityPermission = System.Security.Permissions.SiteIdentityPermission;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class Site : IIdentityPermissionFactory, IBuiltInEvidence
{
private SiteString m_name;
internal Site()
{
m_name = null;
}
public Site(String name)
{
if (name == null)
throw new ArgumentNullException("name");
m_name = new SiteString( name );
}
internal Site( byte[] id, String name )
{
m_name = ParseSiteFromUrl( name );
}
public static Site CreateFromUrl( String url )
{
Site site = new Site();
site.m_name = ParseSiteFromUrl( url );
return site;
}
private static SiteString ParseSiteFromUrl( String name )
{
URLString urlString = new URLString( name );
if (String.Compare( urlString.Scheme, "file", StringComparison.OrdinalIgnoreCase) == 0)
throw new ArgumentException( Environment.GetResourceString( "Argument_InvalidSite" ) );
return new SiteString( new URLString( name ).Host );
}
public String Name
{
get
{
if (m_name != null)
return m_name.ToString();
else
return null;
}
}
internal SiteString GetSiteString()
{
return m_name;
}
public IPermission CreateIdentityPermission( Evidence evidence )
{
return new SiteIdentityPermission( Name );
}
public override bool Equals(Object o)
{
if (o is Site)
{
Site s = (Site) o;
if (Name == null)
return (s.Name == null);
return String.Compare( Name, s.Name, StringComparison.OrdinalIgnoreCase) == 0;
}
return false;
}
public override int GetHashCode()
{
String name = this.Name;
if (name == null)
return 0;
else
return name.GetHashCode();
}
public Object Copy()
{
return new Site(this.Name);
}
internal SecurityElement ToXml()
{
SecurityElement elem = new SecurityElement( "System.Security.Policy.Site" );
// 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.Site" ), "Class name changed!" );
elem.AddAttribute( "version", "1" );
if(m_name != null)
elem.AddChild( new SecurityElement( "Name", m_name.ToString() ) );
return elem;
}
///
int IBuiltInEvidence.OutputToBuffer( char[] buffer, int position, bool verbose )
{
buffer[position++] = BuiltInEvidenceHelper.idSite;
String name = this.Name;
int length = name.Length;
if (verbose)
{
BuiltInEvidenceHelper.CopyIntToCharArray(length, buffer, position);
position += 2;
}
name.CopyTo( 0, buffer, position, length );
return length + position;
}
///
int IBuiltInEvidence.GetRequiredSize(bool verbose)
{
if (verbose)
return this.Name.Length + 3;
else
return this.Name.Length + 1;
}
///
int IBuiltInEvidence.InitFromBuffer( char[] buffer, int position)
{
int length = BuiltInEvidenceHelper.GetIntFromCharArray(buffer, position);
position += 2;
m_name = new SiteString( new String(buffer, position, length ));
return position + length;
}
public override String ToString()
{
return ToXml().ToString();
}
// INormalizeForIsolatedStorage is not implemented for startup perf
// equivalent to INormalizeForIsolatedStorage.Normalize()
internal Object Normalize()
{
return m_name.ToString().ToUpper(CultureInfo.InvariantCulture);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// Site.cs
//
// Site is an IIdentity representing internet sites.
//
namespace System.Security.Policy {
using System.Security.Util;
using System.Globalization;
using SiteIdentityPermission = System.Security.Permissions.SiteIdentityPermission;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class Site : IIdentityPermissionFactory, IBuiltInEvidence
{
private SiteString m_name;
internal Site()
{
m_name = null;
}
public Site(String name)
{
if (name == null)
throw new ArgumentNullException("name");
m_name = new SiteString( name );
}
internal Site( byte[] id, String name )
{
m_name = ParseSiteFromUrl( name );
}
public static Site CreateFromUrl( String url )
{
Site site = new Site();
site.m_name = ParseSiteFromUrl( url );
return site;
}
private static SiteString ParseSiteFromUrl( String name )
{
URLString urlString = new URLString( name );
if (String.Compare( urlString.Scheme, "file", StringComparison.OrdinalIgnoreCase) == 0)
throw new ArgumentException( Environment.GetResourceString( "Argument_InvalidSite" ) );
return new SiteString( new URLString( name ).Host );
}
public String Name
{
get
{
if (m_name != null)
return m_name.ToString();
else
return null;
}
}
internal SiteString GetSiteString()
{
return m_name;
}
public IPermission CreateIdentityPermission( Evidence evidence )
{
return new SiteIdentityPermission( Name );
}
public override bool Equals(Object o)
{
if (o is Site)
{
Site s = (Site) o;
if (Name == null)
return (s.Name == null);
return String.Compare( Name, s.Name, StringComparison.OrdinalIgnoreCase) == 0;
}
return false;
}
public override int GetHashCode()
{
String name = this.Name;
if (name == null)
return 0;
else
return name.GetHashCode();
}
public Object Copy()
{
return new Site(this.Name);
}
internal SecurityElement ToXml()
{
SecurityElement elem = new SecurityElement( "System.Security.Policy.Site" );
// 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.Site" ), "Class name changed!" );
elem.AddAttribute( "version", "1" );
if(m_name != null)
elem.AddChild( new SecurityElement( "Name", m_name.ToString() ) );
return elem;
}
///
int IBuiltInEvidence.OutputToBuffer( char[] buffer, int position, bool verbose )
{
buffer[position++] = BuiltInEvidenceHelper.idSite;
String name = this.Name;
int length = name.Length;
if (verbose)
{
BuiltInEvidenceHelper.CopyIntToCharArray(length, buffer, position);
position += 2;
}
name.CopyTo( 0, buffer, position, length );
return length + position;
}
///
int IBuiltInEvidence.GetRequiredSize(bool verbose)
{
if (verbose)
return this.Name.Length + 3;
else
return this.Name.Length + 1;
}
///
int IBuiltInEvidence.InitFromBuffer( char[] buffer, int position)
{
int length = BuiltInEvidenceHelper.GetIntFromCharArray(buffer, position);
position += 2;
m_name = new SiteString( new String(buffer, position, length ));
return position + length;
}
public override String ToString()
{
return ToXml().ToString();
}
// INormalizeForIsolatedStorage is not implemented for startup perf
// equivalent to INormalizeForIsolatedStorage.Normalize()
internal Object Normalize()
{
return m_name.ToString().ToUpper(CultureInfo.InvariantCulture);
}
}
}
// 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
- _NestedMultipleAsyncResult.cs
- AttachmentCollection.cs
- DataMisalignedException.cs
- SharedStream.cs
- DesignObjectWrapper.cs
- AsyncContentLoadedEventArgs.cs
- DocumentPage.cs
- OwnerDrawPropertyBag.cs
- UpdateProgress.cs
- WorkflowDesignerColors.cs
- InheritanceContextChangedEventManager.cs
- EntityViewGenerator.cs
- PrivilegeNotHeldException.cs
- mediaeventshelper.cs
- DataFormat.cs
- XsdDateTime.cs
- InternalResources.cs
- SelectionChangedEventArgs.cs
- TextFormatterHost.cs
- TreeNodeCollection.cs
- ListControl.cs
- BamlWriter.cs
- ConsoleCancelEventArgs.cs
- Encoder.cs
- FixedSOMTextRun.cs
- ObjectStateManagerMetadata.cs
- SynchronizedPool.cs
- TextEvent.cs
- RectangleF.cs
- HMACSHA512.cs
- KeyValuePairs.cs
- ConditionedDesigner.cs
- DashStyle.cs
- Repeater.cs
- SyncOperationState.cs
- TableCell.cs
- DesignTable.cs
- DocumentViewerBaseAutomationPeer.cs
- StrokeCollection.cs
- ConfigurationSectionCollection.cs
- ImagingCache.cs
- TextTreeText.cs
- RowTypePropertyElement.cs
- ItemsControlAutomationPeer.cs
- EventWaitHandle.cs
- RegexWorker.cs
- SafeTimerHandle.cs
- ComboBoxItem.cs
- SystemIPv6InterfaceProperties.cs
- Errors.cs
- DefaultValueTypeConverter.cs
- GuidTagList.cs
- GridViewEditEventArgs.cs
- BoolExpressionVisitors.cs
- Mapping.cs
- CompensateDesigner.cs
- XmlChoiceIdentifierAttribute.cs
- MenuItemStyle.cs
- RepeaterItemCollection.cs
- basecomparevalidator.cs
- ListViewItem.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- FrameworkElementFactory.cs
- QueryExpression.cs
- Mouse.cs
- BitmapEffectDrawing.cs
- SqlAliasesReferenced.cs
- FutureFactory.cs
- Socket.cs
- NetworkStream.cs
- DynamicRenderer.cs
- PlanCompilerUtil.cs
- DataControlFieldCollection.cs
- StyleSheet.cs
- ObfuscationAttribute.cs
- InboundActivityHelper.cs
- DataBindingList.cs
- DataSvcMapFileSerializer.cs
- CompositeClientFormatter.cs
- AggregateNode.cs
- FacetEnabledSchemaElement.cs
- TextParaClient.cs
- ExpressionPrefixAttribute.cs
- TdsEnums.cs
- WpfWebRequestHelper.cs
- RichTextBoxContextMenu.cs
- JpegBitmapDecoder.cs
- InputLanguageProfileNotifySink.cs
- TextAnchor.cs
- TextRangeProviderWrapper.cs
- ContractMapping.cs
- AlternateViewCollection.cs
- SizeConverter.cs
- XmlElementAttribute.cs
- StylusEditingBehavior.cs
- RoutedPropertyChangedEventArgs.cs
- ReadWriteSpinLock.cs
- CommandID.cs
- DynamicControlParameter.cs
- ModuleElement.cs