C# `Uri.IsBaseOf()`: Determining Base URI Relationships

Learn how to efficiently check if one URI is a base URI for another in C# using the `Uri.IsBaseOf()` method. This tutorial explains its functionality, demonstrates its usage with code examples, and highlights its application in scenarios involving hierarchical URLs and URL validation.



Using C#'s `Uri.IsBaseOf()` Method

The C# `Uri.IsBaseOf()` method determines if one URI is a base URI for another. In simpler terms, it checks if one URI is a prefix of another. This is useful for verifying URL relationships in applications dealing with hierarchical URLs.

`Uri.IsBaseOf()` Syntax and Return Value


public bool IsBaseOf(Uri uri);

The method takes another `Uri` object as input and returns `true` if the current `Uri` instance is a base of the provided `uri`; otherwise, it returns `false`.

Example 1: File Management System


Uri adminFolder = new Uri("https://www.filesystem.com/admin/");
Uri userFolder = new Uri("https://www.filesystem.com/user/");
Uri specificFile = new Uri("https://www.filesystem.com/user/documents/report.pdf");

bool isAdminBase = adminFolder.IsBaseOf(userFolder); //false
bool isUserBase = userFolder.IsBaseOf(specificFile); //true
// ... (code to print the results) ...

Example 2: Domain and Subdomain Checks


//Checking Domain
CheckDomain(new Uri("https://www.example.com"), new Uri("https://www.example.com/about"));

//Checking Subdomain
CheckSubdomain(new Uri("https://blog.example.com"), new Uri("https://www.blog.example.com/archive"));

// ... (CheckDomain and CheckSubdomain methods) ...

Applications of `Uri.IsBaseOf()`

  • URL Hierarchy Navigation: Checking if a URL is a subpath of another.
  • Security Checks: Verifying that a URL is within an allowed domain.
  • Link Categorization: Organizing links based on their base URL.

Example: Web Application


// ... (Simulate URLs and use IsBaseOf for navigation, security, and categorization) ...