Ejemplo n.º 1
0
        private void Init(
            string httpMethod,
            Uri url,
            string applicationPath,
            IEnumerable <KeyValuePair <string, string[]> > formData,
            IEnumerable <KeyValuePair <string, string> > cookies,
            Func <byte[], byte[]> cookieDecryptor)
        {
            HttpMethod     = httpMethod;
            Url            = url;
            ApplicationUrl = new Uri(url, applicationPath);
            Form           = new ReadOnlyDictionary <string, string>(
                (formData ?? Enumerable.Empty <KeyValuePair <string, string[]> >())
                .ToDictionary(kv => kv.Key, kv => kv.Value.Single()));
            QueryString = QueryStringHelper.ParseQueryString(url.Query);

            var relayState = QueryString["RelayState"].SingleOrDefault();

            if (relayState != null)
            {
                var cookieName = "Kentor." + relayState;
                if (cookies.Any(c => c.Key == cookieName))
                {
                    var cookieData = cookies.SingleOrDefault(c => c.Key == cookieName).Value;

                    var unescapedBase64Data = cookieData
                                              .Replace('_', '/')
                                              .Replace('-', '+')
                                              .Replace('.', '=');

                    CookieData = Encoding.UTF8.GetString(cookieDecryptor(
                                                             Convert.FromBase64String(unescapedBase64Data)));
                }
            }
        }
Ejemplo n.º 2
0
        private void InitFromDeepLinkingParams()
        {
            var action = Intent.Action;

            if (Intent.Data == null)
            {
                return;
            }

            var parsedOptions = QueryStringHelper.ParseQueryString(Intent.Data.Query, "===");

            if (parsedOptions.ContainsKey(Constants.EMAIL_KEY))
            {
                mEmail = parsedOptions[Constants.EMAIL_KEY];
            }

            if (parsedOptions.ContainsKey(Constants.PASSWORD_KEY))
            {
                mPassword = parsedOptions[Constants.PASSWORD_KEY];
            }

            if (!string.IsNullOrWhiteSpace(mEmail))
            {
                mEtEmail.Text = mEmail;
            }

            if (!string.IsNullOrWhiteSpace(mPassword))
            {
                mEtPassword.Text = mPassword;
            }
        }
Ejemplo n.º 3
0
 private void InitBasicFields(string httpMethod, Uri url, string applicationPath, IEnumerable <KeyValuePair <string, string[]> > formData)
 {
     HttpMethod     = httpMethod;
     Url            = url;
     ApplicationUrl = new Uri(url, applicationPath);
     Form           = new ReadOnlyDictionary <string, string>(
         (formData ?? Enumerable.Empty <KeyValuePair <string, string[]> >())
         .ToDictionary(kv => kv.Key, kv => kv.Value.Single()));
     QueryString = QueryStringHelper.ParseQueryString(url.Query);
 }
Ejemplo n.º 4
0
        public void QueryStringHelper_ParseQueryString_HandlesEqualsSignAtTheEndOfParameter()
        {
            var subject = QueryStringHelper.ParseQueryString("?fname=john&lname=doe=");

            var expected = new[]
            {
                new { key = "fname", value = "john" },
                new { key = "lname", value = "doe=" }
            }.ToLookup(x => x.key, x => x.value);

            subject.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 5
0
        public void QueryStringHelper_ParseQueryString_HandlesKeyWithoutValue()
        {
            var subject = QueryStringHelper.ParseQueryString("?fname&lname=doe");

            var expected = new[]
            {
                new { key = "fname", value = (string)null },
                new { key = "lname", value = "doe" }
            }.ToLookup(x => x.key, x => x.value);

            subject.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 6
0
        public void QueryStringHelper_ParseQueryString_ShouldRemoveQuestionmark()
        {
            var expected = new[]
            {
                new { key = "fname", value = "john" },
                new { key = "lname", value = "doe" }
            }.ToLookup(x => x.key, y => y.value);

            var collection = QueryStringHelper.ParseQueryString("?fname=john&lname=doe");

            collection.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 7
0
        public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
        {
            var parsedOptions = QueryStringHelper.ParseQueryString(url.Query, "&");

            if (parsedOptions.ContainsKey(Constants.EMAIL_KEY))
            {
                Email = parsedOptions[Constants.EMAIL_KEY];
            }

            if (parsedOptions.ContainsKey(Constants.PASSWORD_KEY))
            {
                Password = parsedOptions[Constants.PASSWORD_KEY];
            }

            OnOpenFromDeepLinking?.Invoke();

            return(true);
        }
Ejemplo n.º 8
0
        void WebSingleSignon_Navigating(object sender, NavigatingEventArgs e)
        {
            App.Model.PendingServiceCalls++;

            if (e.Uri.ToString().StartsWith(RedirectUrl))
            {
                var    queryParams = QueryStringHelper.ParseQueryString(e.Uri.Query);
                string grantToken;
                if (queryParams.TryGetValue("grant_token", out grantToken))
                {
                    e.Cancel = true;
                    App.Model.PendingServiceCalls = 0;
                    var settings = IsolatedStorageSettings.ApplicationSettings;
                    //grantToken = HttpUtility.UrlDecode(grantToken);
                    //grantToken = grantToken.Replace("%7", "|");
                    //var regex = new Regex("grant_token=([^&]*)");

                    settings["grantToken"] = grantToken;
                    settings.Save();
                    this.NavigationService.Navigate(new Uri("/Views/SplashPage.xaml", UriKind.Relative));
                }
            }
        }
Ejemplo n.º 9
0
        public void QueryStringHelper_ParseQueryString_ShouldCreateEmptyOnEmptyString()
        {
            var collection = QueryStringHelper.ParseQueryString("");

            collection.Should().BeEmpty();
        }
Ejemplo n.º 10
0
        public void QueryStringHelper_ParseQueryString_ThrowsOnNull()
        {
            Action a = () => QueryStringHelper.ParseQueryString(null);

            a.Should().Throw <ArgumentNullException>();
        }