1) ~/ or / : is the root site
ex: http://serverA/site1/site2/site3/default.aspx, with the current site is Site3, then ~/ will return http://serverA
2) ./: is the current site
3) ../: is the parent site
with above example will return http://serverA/Site1/Site2
The problem is how to check the input url whether using relative path or absolute path.
The simple code can be like this:
public bool IsRelative(string url)
{
return (url == "~/" || url == "/" || url == "./" || url == "../");
}
But if you want to make sure the functioning work correctly, it should be:
public static bool IsUrlRelative(string url) { Uri uri; try { uri = new Uri(url, UriKind.RelativeOrAbsolute); } catch { return false; } return !uri.IsAbsoluteUri; }
For now, SharePoint has supported the class to check this, it's very helpful:
SPUrlUtility supported some methods to work on URL:
public static string CombineUrl(string baseUrlPath, string additionalNodes);
return the concatenate 2 string
public static int IndexOfIllegalCharInUrlLeafName(string strLeafName);
return the position of illegal character in your string
public static bool IsLegalCharInUrl(char character);
indicate your character is legal or not
public static bool IsLegalFileName(string name);
indicate your file name is legal or not
public static bool IsProtocolAllowed(string fullOrRelativeUrl);
public static bool IsProtocolAllowed(string fullOrRelativeUrl, bool allowRelativeUrl);
public static bool IsUrlFull(string url); public static bool IsUrlRelative(string url);
No comments:
Post a Comment