Esempio n. 1
0
        private async void ButtonWindowsWebHttp_OnClick(object sender, RoutedEventArgs e)
        {
            var httpBaseProtocolFilter = new HttpBaseProtocolFilter
            {
                AllowUI      = true,
                CacheControl =
                {
                    ReadBehavior  = HttpCacheReadBehavior.NoCache,
                    WriteBehavior = HttpCacheWriteBehavior.NoCache
                }
            };
            HttpCookieManager cookieManager = httpBaseProtocolFilter.CookieManager;
            List <HttpCookie> cookies       = cookieManager.GetCookies(_uri).ToList();

            using (var httpClient = new HttpClient(httpBaseProtocolFilter))
            {
                var requestMessage = new HttpRequestMessage(HttpMethod.Get, _uri);
                Request.Text = new StringBuilder().AppendLine(requestMessage.ToString())
                               .AppendLine(requestMessage.Headers.ToString())
                               .AppendLine(string.Join("\n", cookies)).ToString();

                HttpResponseMessage responseMessage = await httpClient.SendRequestAsync(requestMessage);

                Request1.Text = new StringBuilder().AppendLine(responseMessage.RequestMessage.ToString())
                                .AppendLine(string.Join(" - ", cookies)).ToString();

                Response.Text = responseMessage.ToString();
            }
        }
Esempio n. 2
0
        public async Task ClearCookiesAsync(LoginOptions options)
        {
            if (Window.Current == null)
            {
                return;
            }
            var frame = Window.Current.Content as Frame;

            if (frame != null)
            {
                await frame.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    var loginUri = new Uri(OAuth2.ComputeAuthorizationUrl(options));
                    var myFilter = new HttpBaseProtocolFilter();
                    HttpCookieManager cookieManager = myFilter.CookieManager;
                    try
                    {
                        LoggingService.Log("attempting to clear cookies", LoggingLevel.Verbose);
                        HttpCookieCollection cookies = cookieManager.GetCookies(loginUri);
                        foreach (HttpCookie cookie in cookies)
                        {
                            cookieManager.DeleteCookie(cookie);
                        }
                        LoggingService.Log("clear cookies done", LoggingLevel.Verbose);
                    }
                    catch (ArgumentException ex)
                    {
                        LoggingService.Log("Exception occurred when clearing cookies", LoggingLevel.Critical);
                        LoggingService.Log(ex, LoggingLevel.Critical);
                    }
                });
            }
        }
        public static async void ClearCookies(LoginOptions loginOptions)
        {
            var frame = Window.Current.Content as Frame;

            if (frame != null)
            {
                await frame.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
                {
                    var loginUri = new Uri(ComputeAuthorizationUrl(loginOptions));
                    var myFilter = new HttpBaseProtocolFilter();
                    HttpCookieManager cookieManager = myFilter.CookieManager;
                    try
                    {
                        PlatformAdapter.SendToCustomLogger("OAuth.ClearCookies - attempting at clearing cookies", LoggingLevel.Verbose);
                        HttpCookieCollection cookies = cookieManager.GetCookies(loginUri);
                        foreach (HttpCookie cookie in cookies)
                        {
                            cookieManager.DeleteCookie(cookie);
                        }
                        PlatformAdapter.SendToCustomLogger("OAuth2.ClearCookies - done", LoggingLevel.Verbose);
                    }
                    catch (ArgumentException ex)
                    {
                        PlatformAdapter.SendToCustomLogger("OAuth2.ClearCookies - Exception occurred when clearing cookies:", LoggingLevel.Critical);
                        PlatformAdapter.SendToCustomLogger(ex, LoggingLevel.Critical);
                        Debug.WriteLine("Error clearing cookies");
                    }
                });
            }
        }
Esempio n. 4
0
        public string GetCurrentNicoVideoCookieHeader()
        {
#if WINDOWS_UWP
            return(string.Join(" ", CookieContainer.GetCookies(new Uri(NiconicoUrls.TopPageUrl))));
#else
            return(CookieContainer.GetCookieHeader(new Uri(NiconicoUrls.TopPageUrl)));
#endif
        }
Esempio n. 5
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            scopes = e.Parameter as List <TwitchConstants.Scope>;
            Uri authPageUri = AppConstants.Twixel.Login(scopes);
            HttpBaseProtocolFilter filter        = new HttpBaseProtocolFilter();
            HttpCookieManager      cookieManager = filter.CookieManager;
            HttpCookieCollection   cookies       = cookieManager.GetCookies(authPageUri);

            foreach (HttpCookie cookie in cookies)
            {
                cookieManager.DeleteCookie(cookie);
            }
            webView.Navigate(authPageUri);
            base.OnNavigatedTo(e);
        }
Esempio n. 6
0
        private void ClearCookie()
        {
            if (Uri.TryCreate(AuthorizeUrl, UriKind.Absolute, out var authUri))
            {
                // capture the domain of the OAuth URL, then clear all cookies
                string targetUrl = $"{authUri.Scheme}://{authUri.Host}";

                HttpBaseProtocolFilter filter     = new HttpBaseProtocolFilter();
                HttpCookieManager      manager    = filter.CookieManager;
                HttpCookieCollection   collection = manager.GetCookies(new Uri(targetUrl));

                foreach (var item in collection)
                {
                    manager.DeleteCookie(item);
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// Storing all the cookies for future use;
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public async Task <bool> RegisterWithFacebook2(Windows.ApplicationModel.Activation.WebAuthenticationBrokerContinuationEventArgs args)
        {
            WebAuthenticationResult result = args.WebAuthenticationResult;

            if (result.ResponseStatus == WebAuthenticationStatus.Success)
            {
                StatusBar bar = StatusBar.GetForCurrentView();
                await bar.ProgressIndicator.ShowAsync();

                await bar.ShowAsync();

                bar.ProgressIndicator.Text = "Retrieving logindata";

                string output = result.ResponseData.ToString();

                Response resp = await getResponse(output, null);

                HttpCookieCollection col = cookieMonster.GetCookies(new Uri("http://followshows.com/"));

                List <HttpCookie> cooklist = new List <HttpCookie>();
                foreach (HttpCookie c*k in col)
                {
                    cooklist.Add(c*k);
                }

                StorageFolder local = ApplicationData.Current.LocalFolder;
                StorageFile   fil   = await local.CreateFileAsync("cookie", CreationCollisionOption.ReplaceExisting);

                PasswordVault vault = new PasswordVault();
                vault.Add(new PasswordCredential("facebook", "Nobody ever reads", "this shit"));

                bar.ProgressIndicator.Text = "Storing logindata";

                await Windows.Storage.FileIO.WriteTextAsync(fil, JsonConvert.SerializeObject(cooklist));

                bar.ProgressIndicator.Text = "Logging in";

                return(true);
            }

            return(false);
        }
        /// <summary>
        /// Login into LNU, should only call it when login-cookie is gone.
        /// </summary>
        /// <param name="client"></param>
        /// <param name="user"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public static async Task <LoginReturnBag> PostLNULoginCallback(HttpClient client, string user, string password)
        {
            /// Changes for Windows Store

            //var urlString = string.Format("http://jwgl.lnu.edu.cn/pls/wwwbks/bks_login2.login?stuid={0}&pwd={1}", user, password);

            var urlString = string.Format("https://notificationhubforuwp.azurewebsites.net/LNU/Redirect?user={0}&psw={1}", user, password);
            var bag       = new LoginReturnBag();

            try { // do not dispose, so that the global undirect httpclient will stay in referenced. dispose it when you need.
                var httpClient = client;

                //httpClient.DefaultRequestHeaders.Host = new Windows.Networking.HostName("jwgl.lnu.edu.cn");
                //httpClient.DefaultRequestHeaders.Referer = new Uri("http://jwgl.lnu.edu.cn/zhxt_bks/xk_login.html");

                ///

                using (var response = await LOGIN_POST(client, urlString)) {
                    var returnCookies = UnRedirectCookiesManager.GetCookies(new Uri("https://notificationhubforuwp.azurewebsites.net/"));
                    if (returnCookies.Count == 0)
                    {
                        throw new AccessUnPassedException("Login Failed: no login-success cookie received.");
                    }

                    /// Changes for Windows Store

                    string content = default(string);
                    var    value   = response.Headers.TryGetValue("Set-Cookie", out content);
                    if (value)
                    {
                        content = content.Split(',')[0].Replace(";", "@").Split('@')[0].Replace("=", "@").Split('@')[1];
                        HttpCookie cookie = new HttpCookie("ACCOUNT", "jwgl.lnu.edu.cn", "/pls/wwwbks/");
                        cookie.Value = content;

                        /// DEBUG Method

                        Debug.WriteLine("DEBUG ----->   " + content);

                        ///

                        UnRedirectCookiesManager.SetCookie(cookie);
                        bag.CookieBag = cookie;
                    }

                    ///

                    using (var request = GET(client, "http://jwgl.lnu.edu.cn/pls/wwwbks/bks_login2.loginmessage")) {
                        request.Headers.Host    = new Windows.Networking.HostName("jwgl.lnu.edu.cn");
                        request.Headers.Referer = new Uri("http://jwgl.lnu.edu.cn/zhxt_bks/xk_login.html");
                        var result = await httpClient.SendRequestAsync(request);

                        bag.HtmlResouces = (await CastStreamContentToString(result)).ToString();
                    }
                }
            } catch (ObjectDisposedException ex) { // when web connect recovery , recreate a new instance to implemente a recursive function to solve the problem.
                Debug.WriteLine("\nFailed:\n" + ex.StackTrace);
                unRedirectHttpClient = null;
                return(await PostLNULoginCallback(UnRedirectHttpClient, user, password));
            } catch (COMException ex) { // it is obvious that the internrt connect go wrong.
                Debug.WriteLine("\nFailed:\n" + ex.StackTrace);
                return(null);
            } catch (AccessUnPassedException ex) {
                Debug.WriteLine("\nFailed:\n" + ex.StackTrace);
                unRedirectHttpClient = null;
                return(bag);
            } catch (Exception ex) { // unkown error, report it.
                Debug.WriteLine("\nFailed:\n" + ex.StackTrace);
                return(null);
            }
            return(bag);
        }