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 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()); } }