Exemplo n.º 1
0
        protected Boolean isUriPartOfLogin(Uri uri)
        {
            String requestUri = uri.AbsoluteUriWithoutQuery();
            String loginUri   = AuthLoginUri().AbsoluteUriWithoutQuery();

            requestUri = requestUri.TrimEnd(new char[] { '/', '\\' });
            loginUri   = loginUri.TrimEnd(new char[] { '/', '\\' });

            return(String.Equals(requestUri, loginUri, StringComparison.InvariantCultureIgnoreCase));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Fügt der aktuellen <see cref="Uri"/> ein oder mehrere Query String Parameter hinzu.
        /// </summary>
        /// <param name="uri">Die Uri an der der Query String angefügt werden soll.</param>
        /// <param name="queryString">Die Query Strings die angefügt werden sollen.</param>
        /// <param name="encode">Angabe, ob die Werte des Query Strings Url encoded werden soll.</param>
        public static Uri SetQueryParam(this Uri uri, Dictionary <string, string> queryString, bool encode = true)
        {
            // Schon vorhandenen Query String ermitteln.
            string[] queries = uri.QueryStringAsArray();

            // Übergebene Query String Parameter in ein Array konvertieren.
            string[] newQueries = queryString.Select(q => q.Key + "=" + ((encode) ? WebUtility.UrlEncode(q.Value) : q.Value)).ToArray();

            // Alten und neuen Query String verbinden.
            queries = queries.Concat(newQueries).ToArray();

            return(new Uri(uri.AbsoluteUriWithoutQuery() + "?" + string.Join("&", queries)));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Fügt der aktuellen <see cref="Uri"/> ein neues Segment hinzu.
        /// </summary>
        /// <param name="uri">Die Uri an der das neue Segment angefügt werden soll.</param>
        /// <param name="segment">Das Segment welches angefügt werden soll.</param>
        /// <param name="encode">Angabe, ob das Segment Url encoded werden soll.</param>
        public static Uri AppendSegment(this Uri uri, string segment, bool encode = true)
        {
            // Vorhandenen Query String ermitteln.
            string query = uri.Query;

            // Neues Segment an Pfad anknüpfen.
            string pathA = uri.AbsoluteUriWithoutQuery().TrimEnd('/');
            string pathB = segment.TrimStart('/');

            var builder = new StringBuilder();

            builder.Append(pathA);
            builder.Append("/");
            builder.Append((encode) ? WebUtility.UrlEncode(pathB) : pathB);

            if (!string.IsNullOrWhiteSpace(query))
            {
                builder.Append("?" + query);
            }

            return(new Uri(builder.ToString()));
        }