Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / clr / src / BCL / System / Security / Policy / URL.cs / 1 / URL.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
//
// Url.cs
//
// Url is an IIdentity representing url internet sites.
//
namespace System.Security.Policy {
using System.IO;
using System.Security.Util;
using UrlIdentityPermission = System.Security.Permissions.UrlIdentityPermission;
using System.Runtime.Serialization;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
sealed public class Url : IIdentityPermissionFactory, IBuiltInEvidence
{
private URLString m_url;
internal Url()
{
m_url = null;
}
internal Url( SerializationInfo info, StreamingContext context )
{
m_url = new URLString( (String)info.GetValue( "Url", typeof( String ) ) );
}
internal Url( String name, bool parsed )
{
if (name == null)
throw new ArgumentNullException( "name" );
m_url = new URLString( name, parsed );
}
public Url( String name )
{
if (name == null)
throw new ArgumentNullException( "name" );
m_url = new URLString( name );
}
public String Value
{
get
{
if (m_url == null) return null;
return m_url.ToString();
}
}
internal URLString GetURLString()
{
return m_url;
}
public IPermission CreateIdentityPermission( Evidence evidence )
{
return new UrlIdentityPermission( m_url );
}
public override bool Equals(Object o)
{
if (o == null)
return false;
if (o is Url)
{
Url url = (Url) o;
if (this.m_url == null)
{
return url.m_url == null;
}
else if (url.m_url == null)
{
return false;
}
else
{
return this.m_url.Equals( url.m_url );
}
}
return false;
}
public override int GetHashCode()
{
if (this.m_url == null)
return 0;
else
return this.m_url.GetHashCode();
}
public Object Copy()
{
Url url = new Url();
url.m_url = this.m_url;
return url;
}
internal SecurityElement ToXml()
{
SecurityElement root = new SecurityElement( "System.Security.Policy.Url" );
// 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.Url" ), "Class name changed!" );
root.AddAttribute( "version", "1" );
if (m_url != null)
root.AddChild( new SecurityElement( "Url", m_url.ToString() ) );
return root;
}
public override String ToString()
{
return ToXml().ToString();
}
///
int IBuiltInEvidence.OutputToBuffer( char[] buffer, int position, bool verbose )
{
buffer[position++] = BuiltInEvidenceHelper.idUrl;
String value = this.Value;
int length = value.Length;
if (verbose)
{
BuiltInEvidenceHelper.CopyIntToCharArray(length, buffer, position);
position += 2;
}
value.CopyTo( 0, buffer, position, length );
return length + position;
}
///
int IBuiltInEvidence.GetRequiredSize(bool verbose )
{
if (verbose)
return this.Value.Length + 3;
else
return this.Value.Length + 1;
}
///
int IBuiltInEvidence.InitFromBuffer( char[] buffer, int position)
{
int length = BuiltInEvidenceHelper.GetIntFromCharArray(buffer, position);
position += 2;
m_url = new URLString( new String(buffer, position, length ));
return position + length;
}
#if false
public void GetObjectData(SerializationInfo info, StreamingContext context)
{
String normalizedUrl = m_url.NormalizeUrl();
info.AddValue( "Url", normalizedUrl );
}
#endif
// INormalizeForIsolatedStorage is not implemented for startup perf
// equivalent to INormalizeForIsolatedStorage.Normalize()
internal Object Normalize()
{
return m_url.NormalizeUrl();
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DebugHandleTracker.cs
- ObjectPropertyMapping.cs
- ObsoleteAttribute.cs
- CalloutQueueItem.cs
- ToolStripPanelRow.cs
- AnnotationDocumentPaginator.cs
- AssemblyName.cs
- EventLogPermissionEntryCollection.cs
- InternalCache.cs
- DynamicResourceExtensionConverter.cs
- CatchBlock.cs
- CommandEventArgs.cs
- MsmqIntegrationInputChannel.cs
- WindowsListViewItemStartMenu.cs
- DbConnectionPoolGroup.cs
- SecurityPermission.cs
- DateTimeSerializationSection.cs
- TrustLevel.cs
- FakeModelPropertyImpl.cs
- NameScope.cs
- XmlElementAttribute.cs
- HttpInputStream.cs
- CrossAppDomainChannel.cs
- WorkflowLayouts.cs
- ToolTip.cs
- WebFaultClientMessageInspector.cs
- WindowsScroll.cs
- ListenerElementsCollection.cs
- DesignerAttribute.cs
- __Filters.cs
- ComboBoxItem.cs
- DataServiceRequestException.cs
- ParameterCollection.cs
- ThreadPool.cs
- BinaryFormatterWriter.cs
- ComponentDispatcherThread.cs
- SingleAnimationBase.cs
- ObjectTag.cs
- PropertySourceInfo.cs
- QueryCacheEntry.cs
- ForceCopyBuildProvider.cs
- CLSCompliantAttribute.cs
- EmptyEnumerator.cs
- ModuleElement.cs
- CheckBoxList.cs
- DataTableReaderListener.cs
- DataGridViewControlCollection.cs
- StylusPointDescription.cs
- SelectionEditor.cs
- ObjectQueryProvider.cs
- CatalogZoneAutoFormat.cs
- Pair.cs
- TextDecorations.cs
- ScalarConstant.cs
- PersonalizationProviderHelper.cs
- GeneralTransformCollection.cs
- SafeNativeMethods.cs
- RemoteAsymmetricSignatureFormatter.cs
- Constraint.cs
- SendKeys.cs
- TransformProviderWrapper.cs
- PostBackOptions.cs
- IsolatedStoragePermission.cs
- NGCSerializationManagerAsync.cs
- SafeThreadHandle.cs
- AstTree.cs
- DbConnectionOptions.cs
- RecognitionEventArgs.cs
- ExpressionEditorAttribute.cs
- SecurityDocument.cs
- TypeKeyValue.cs
- DownloadProgressEventArgs.cs
- XmlAtomErrorReader.cs
- OracleDataAdapter.cs
- MenuRendererClassic.cs
- EdgeProfileValidation.cs
- SafeLocalMemHandle.cs
- Int16AnimationUsingKeyFrames.cs
- HealthMonitoringSectionHelper.cs
- TextTreeRootTextBlock.cs
- WinFormsSpinner.cs
- GridSplitter.cs
- CryptoHelper.cs
- ApplicationTrust.cs
- VectorConverter.cs
- JoinCqlBlock.cs
- MimeTypePropertyAttribute.cs
- Lease.cs
- ReadOnlyObservableCollection.cs
- Pkcs7Recipient.cs
- EllipticalNodeOperations.cs
- FamilyCollection.cs
- XamlWriter.cs
- DummyDataSource.cs
- CatalogPart.cs
- TagNameToTypeMapper.cs
- RealizationContext.cs
- HtmlTable.cs
- SqlConnectionManager.cs
- ContactManager.cs