public static void RewriteFederatedDomainInURL(HttpContext httpContext, out string domain) { domain = string.Empty; Uri url = httpContext.Request.Url; domain = UrlUtilities.ValidateFederatedDomainInURL(url); UrlUtilities.RewriteRealmParameterInURL(httpContext, domain); }
public static Uri GetOriginalRequestUrlFromContext(HttpContext httpContext) { Uri result = httpContext.Request.Url; string text = httpContext.Request.Headers.Get("X-OWA-OriginalRequestUrl"); if (!string.IsNullOrEmpty(text)) { Uri uri = UrlUtilities.TryParseUri(HttpUtility.UrlDecode(text)); if (uri != null) { result = uri; } } return(result); }
public static void RewriteDomainFromTenantSpecificURL(HttpContext httpContext, string tenantUrl) { if (!string.IsNullOrEmpty(tenantUrl)) { string text = tenantUrl.Substring(tenantUrl.IndexOf(".") + 1).TrimEnd(new char[] { '/' }); if (text.IndexOf(".") <= 0) { text = tenantUrl; } UrlUtilities.RewriteRealmParameterInURL(httpContext, text); } }
internal static bool IsSafeUrl(string urlString) { if (string.IsNullOrEmpty(urlString)) { return(false); } Uri uri; if (null == (uri = UrlUtilities.TryParseUri(urlString))) { return(false); } string scheme = uri.Scheme; return(!string.IsNullOrEmpty(scheme) && Uri.CheckSchemeName(scheme) && TextConvertersInternalHelpers.IsUrlSchemaSafe(scheme)); }
public static void RewriteParameterInURL(HttpContext httpContext, string parameter) { Uri url = httpContext.Request.Url; UrlUtilities.SaveOriginalRequestUrlToContext(httpContext, url); StringBuilder stringBuilder = new StringBuilder(url.PathAndQuery); if (string.IsNullOrEmpty(url.Query)) { stringBuilder.Append("?"); } else { stringBuilder.Append("&"); } stringBuilder.Append(parameter); httpContext.RewritePath(stringBuilder.ToString()); }
public static void RewriteDomainInVanityDomainURL(HttpContext httpContext) { Uri url = httpContext.Request.Url; if (url.Segments.Length >= 1) { string text = url.Segments[0]; string text2 = text.Substring(text.IndexOf(".") + 1).TrimEnd(new char[] { '/' }); if (text2.IndexOf(".") <= 0) { text2 = text; } UrlUtilities.RewriteRealmParameterInURL(httpContext, text2); } }
public static void RewriteRealmParameterInURL(HttpContext httpContext, string domain) { Uri url = httpContext.Request.Url; UrlUtilities.SaveOriginalRequestUrlToContext(httpContext, url); if (!string.IsNullOrEmpty(domain) && SmtpAddress.IsValidDomain(domain)) { StringBuilder stringBuilder = new StringBuilder(); int i = 0; while (i < url.Segments.Length) { string text = url.Segments[i]; if (i != 2 || text.Equals("closewindow.aspx", StringComparison.OrdinalIgnoreCase) || text.Equals("logoff.aspx", StringComparison.OrdinalIgnoreCase)) { goto IL_77; } int num = text.IndexOf('@'); if (num > 0 && num < text.Length - 2) { goto IL_77; } IL_7F: i++; continue; IL_77: stringBuilder.Append(text); goto IL_7F; } if (string.IsNullOrEmpty(url.Query)) { stringBuilder.Append("?"); } else { stringBuilder.Append(url.Query); stringBuilder.Append("&"); } stringBuilder.Append("realm"); stringBuilder.Append("="); stringBuilder.Append(HttpUtility.UrlEncode(domain)); httpContext.RewritePath(stringBuilder.ToString()); } }
internal static Uri TryParseUri(string uriString) { return(UrlUtilities.TryParseUri(uriString, UriKind.Absolute)); }
public static bool IsRealmRewrittenFromPathToQuery(HttpContext httpContext) { return(UrlUtilities.IsRealmRewrittenFromPathToQuery(httpContext, UrlUtilities.GetOriginalRequestUrlFromContext(httpContext))); }
public static void RewriteParameterInURL(HttpContext httpContext, string name, string value) { string parameter = string.Format("{0}={1}", name, value); UrlUtilities.RewriteParameterInURL(httpContext, parameter); }
public static void RewriteFederatedDomainInURL(HttpContext httpContext) { string empty = string.Empty; UrlUtilities.RewriteFederatedDomainInURL(httpContext, out empty); }