private static void AddSessionKey(ref Uri uri)
        {
            string text   = uri.ToString();
            int    random = SessionKeyRedirectionModule.GetRandom();

            text = string.Format("{0};{1}={2}", text, "sessionKey", random);
            UriBuilder uriBuilder = new UriBuilder(text);

            uri = uriBuilder.Uri;
        }
        private static void OnPostAuthenticateRequest(object source, EventArgs args)
        {
            HttpApplication httpApplication = (HttpApplication)source;
            HttpContext     context         = httpApplication.Context;

            if (!context.Request.IsAuthenticated)
            {
                Logger.LogWarning(SessionKeyRedirectionModule.traceSrc, "OnPostAuthenticateRequest was called on a not Authenticated Request!");
                return;
            }
            string tenantName = SessionKeyRedirectionModule.ResolveTenantName();
            Uri    uri        = RedirectionHelper.RemovePropertiesFromOriginalUri(context.Request.Url, RedirectionConfig.RedirectionUriFilterProperties);

            if (SessionKeyRedirectionModule.ShouldAddSessionKey(uri, tenantName))
            {
                SessionKeyRedirectionModule.AddSessionKey(ref uri);
                Logger.LogVerbose(SessionKeyRedirectionModule.traceSrc, "Redirecting user to {0}.", new object[]
                {
                    uri
                });
                context.Response.Redirect(uri.ToString());
            }
        }