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(); } }
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"); } }); } }
public string GetCurrentNicoVideoCookieHeader() { #if WINDOWS_UWP return(string.Join(" ", CookieContainer.GetCookies(new Uri(NiconicoUrls.TopPageUrl)))); #else return(CookieContainer.GetCookieHeader(new Uri(NiconicoUrls.TopPageUrl))); #endif }
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); }
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); } } }
/// <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); }