本文整理汇总了C#中System.Security.Util.URLString.DoDeferredParse方法的典型用法代码示例。如果您正苦于以下问题:C# URLString.DoDeferredParse方法的具体用法?C# URLString.DoDeferredParse怎么用?C# URLString.DoDeferredParse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Security.Util.URLString
的用法示例。
在下文中一共展示了URLString.DoDeferredParse方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CompareUrls
public static bool CompareUrls(URLString url1, URLString url2)
{
if ((url1 == null) && (url2 == null))
{
return true;
}
if ((url1 == null) || (url2 == null))
{
return false;
}
url1.DoDeferredParse();
url2.DoDeferredParse();
URLString str = url1.SpecialNormalizeUrl();
URLString str2 = url2.SpecialNormalizeUrl();
if (string.Compare(str.m_protocol, str2.m_protocol, StringComparison.OrdinalIgnoreCase) != 0)
{
return false;
}
if (string.Compare(str.m_protocol, "file", StringComparison.OrdinalIgnoreCase) == 0)
{
if (!str.m_localSite.IsSubsetOf(str2.m_localSite) || !str2.m_localSite.IsSubsetOf(str.m_localSite))
{
return false;
}
}
else
{
if (string.Compare(str.m_userpass, str2.m_userpass, StringComparison.Ordinal) != 0)
{
return false;
}
if (!str.m_siteString.IsSubsetOf(str2.m_siteString) || !str2.m_siteString.IsSubsetOf(str.m_siteString))
{
return false;
}
if (url1.m_port != url2.m_port)
{
return false;
}
}
return (str.m_directory.IsSubsetOf(str2.m_directory) && str2.m_directory.IsSubsetOf(str.m_directory));
}
示例2: SpecialNormalizeUrl
internal URLString SpecialNormalizeUrl()
{
// Under WinXP, file protocol urls can be mapped to
// drives that aren't actually file protocol underneath
// due to drive mounting. This code attempts to figure
// out what a drive is mounted to and create the
// url is maps to.
DoDeferredParse();
if (String.Compare( m_protocol, "file", StringComparison.OrdinalIgnoreCase) != 0)
{
return this;
}
else
{
String localSite = m_localSite.ToString();
if (localSite.Length == 2 &&
(localSite[1] == '|' ||
localSite[1] == ':'))
{
String deviceName = null;
GetDeviceName(localSite, JitHelpers.GetStringHandleOnStack(ref deviceName));
if (deviceName != null)
{
if (deviceName.IndexOf( "://", StringComparison.Ordinal ) != -1)
{
URLString u = new URLString( deviceName + "/" + this.m_directory.ToString() );
u.DoDeferredParse(); // Presumably the caller of SpecialNormalizeUrl wants a fully parsed URL
return u;
}
else
{
URLString u = new URLString( "file://" + deviceName + "/" + this.m_directory.ToString() );
u.DoDeferredParse();// Presumably the caller of SpecialNormalizeUrl wants a fully parsed URL
return u;
}
}
else
return this;
}
else
{
return this;
}
}
}
示例3: CompareUrls
public static bool CompareUrls( URLString url1, URLString url2 )
{
if (url1 == null && url2 == null)
return true;
if (url1 == null || url2 == null)
return false;
url1.DoDeferredParse();
url2.DoDeferredParse();
URLString normalUrl1 = url1.SpecialNormalizeUrl();
URLString normalUrl2 = url2.SpecialNormalizeUrl();
// Compare protocol (case insensitive)
if (String.Compare( normalUrl1.m_protocol, normalUrl2.m_protocol, StringComparison.OrdinalIgnoreCase) != 0)
return false;
// Do special processing for file urls
if (String.Compare( normalUrl1.m_protocol, "file", StringComparison.OrdinalIgnoreCase) == 0)
{
#if !PLATFORM_UNIX
if (!normalUrl1.m_localSite.IsSubsetOf( normalUrl2.m_localSite ) ||
!normalUrl2.m_localSite.IsSubsetOf( normalUrl1.m_localSite ))
return false;
#else
return url1.IsSubsetOf( url2 ) &&
url2.IsSubsetOf( url1 );
#endif // !PLATFORM_UNIX
}
else
{
if (String.Compare( normalUrl1.m_userpass, normalUrl2.m_userpass, StringComparison.Ordinal) != 0)
return false;
if (!normalUrl1.m_siteString.IsSubsetOf( normalUrl2.m_siteString ) ||
!normalUrl2.m_siteString.IsSubsetOf( normalUrl1.m_siteString ))
return false;
if (url1.m_port != url2.m_port)
return false;
}
if (!normalUrl1.m_directory.IsSubsetOf( normalUrl2.m_directory ) ||
!normalUrl2.m_directory.IsSubsetOf( normalUrl1.m_directory ))
return false;
return true;
}
示例4: SpecialNormalizeUrl
internal URLString SpecialNormalizeUrl()
{
this.DoDeferredParse();
if (string.Compare(this.m_protocol, "file", StringComparison.OrdinalIgnoreCase) != 0)
{
return this;
}
string driveLetter = this.m_localSite.ToString();
if ((driveLetter.Length != 2) || ((driveLetter[1] != '|') && (driveLetter[1] != ':')))
{
return this;
}
string s = null;
GetDeviceName(driveLetter, JitHelpers.GetStringHandleOnStack(ref s));
if (s == null)
{
return this;
}
if (s.IndexOf("://", StringComparison.Ordinal) != -1)
{
URLString str3 = new URLString(s + "/" + this.m_directory.ToString());
str3.DoDeferredParse();
return str3;
}
URLString str4 = new URLString("file://" + s + "/" + this.m_directory.ToString());
str4.DoDeferredParse();
return str4;
}