Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / 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);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TCPClient.cs
- TypeToStringValueConverter.cs
- CLRBindingWorker.cs
- rsa.cs
- XmlSchemaSequence.cs
- FontStyle.cs
- HostingEnvironment.cs
- TableCell.cs
- Style.cs
- MenuScrollingVisibilityConverter.cs
- ListViewItemSelectionChangedEvent.cs
- ObjectAnimationBase.cs
- XPathSelfQuery.cs
- CodeVariableDeclarationStatement.cs
- WeakReferenceKey.cs
- ReaderContextStackData.cs
- XmlUTF8TextReader.cs
- TypeDescriptionProviderAttribute.cs
- WebServiceEndpoint.cs
- MSG.cs
- PartialArray.cs
- ObjectDataSourceEventArgs.cs
- StringConcat.cs
- KeyFrames.cs
- AssemblyNameUtility.cs
- SystemParameters.cs
- SessionIDManager.cs
- LoadItemsEventArgs.cs
- OuterGlowBitmapEffect.cs
- MouseButtonEventArgs.cs
- ResolveNextArgumentWorkItem.cs
- XmlUtilWriter.cs
- TrustSection.cs
- ColorBuilder.cs
- Int32Rect.cs
- InteropBitmapSource.cs
- HttpProfileBase.cs
- CookielessHelper.cs
- InputLanguageProfileNotifySink.cs
- CookieParameter.cs
- ProvidePropertyAttribute.cs
- ExpressionPrinter.cs
- HyperlinkAutomationPeer.cs
- DefaultAsyncDataDispatcher.cs
- filewebresponse.cs
- CompiledXpathExpr.cs
- FixUp.cs
- NamedPipeConnectionPool.cs
- StickyNote.cs
- CommandBindingCollection.cs
- XhtmlConformanceSection.cs
- Point4DValueSerializer.cs
- HostingEnvironmentWrapper.cs
- safesecurityhelperavalon.cs
- Menu.cs
- PersonalizationProvider.cs
- SafeIUnknown.cs
- SafeThemeHandle.cs
- WebPartEditVerb.cs
- ConnectorSelectionGlyph.cs
- WebControl.cs
- SiteOfOriginContainer.cs
- ObjectDataSource.cs
- HiddenField.cs
- WizardSideBarListControlItemEventArgs.cs
- PreDigestedSignedInfo.cs
- _HeaderInfoTable.cs
- LinearGradientBrush.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- GacUtil.cs
- HttpApplicationFactory.cs
- Light.cs
- FusionWrap.cs
- WindowsListViewGroupSubsetLink.cs
- FormatConvertedBitmap.cs
- TypeNameConverter.cs
- ApplicationFileParser.cs
- SpellerStatusTable.cs
- SqlMethods.cs
- PromptStyle.cs
- BoolExpression.cs
- DodSequenceMerge.cs
- SiteMap.cs
- BroadcastEventHelper.cs
- ColorDialog.cs
- AnnotationHelper.cs
- JpegBitmapEncoder.cs
- NotifyIcon.cs
- ObjectListCommandEventArgs.cs
- SecurityResources.cs
- ContextQuery.cs
- XmlChildNodes.cs
- WebException.cs
- DockEditor.cs
- CodeCatchClause.cs
- DateTimeSerializationSection.cs
- CodeAttributeDeclarationCollection.cs
- XslCompiledTransform.cs
- WebScriptEndpointElement.cs
- SynchronizationContext.cs