using System.Globalization;
public static Uri CanonicalAuthority;
public static void Main()
Uri uri = new Uri("https://dummy.b2clogin.com/dummy.onmicrosoft.com/b2c_1a_signup_signin_staging/oauth2/authorize/where/did/you/go");
Console.WriteLine(CanonicalAuthority);
private static string[] GetPathSegments(string absolutePath)
string[] pathSegments = absolutePath.Substring(1).Split(new[]{'/'}, StringSplitOptions.RemoveEmptyEntries);
private static void GetAuthority(Uri authorityUri)
string[] pathSegments = GetPathSegments(authorityUri.AbsolutePath);
if (pathSegments.Length < 3)
throw new ArgumentException("B2C 'authority' Uri should have at least 3 segments in the path (i.e. https://<host>/tfp/<tenant>/<policy>/...). ");
CanonicalAuthority = new Uri(string.Format(CultureInfo.InvariantCulture, "https://{0}/{1}/{2}/{3}/", authorityUri.Authority, pathSegments[0], pathSegments[1], pathSegments[2]));