public void InitSettingData() { var settingvm = ViewModelInstance.Instance.SettingPageViewModelInstance; settingvm.InitSettingData(); HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter(); HttpCookieCollection cookieCollection = filter.CookieManager.GetCookies(new Uri(ViewModelInstance.Instance.UrlService.GetHomePage())); var cookieItem = cookieCollection.FirstOrDefault(p => p.Name.Equals("sodu_user")); if (cookieItem == null) { ViewModelInstance.Instance.IsLogin = false; return; } if (settingvm.IfAutoLogin) { cookieItem.Expires = new DateTimeOffset(DateTime.Now.AddDays(365)); filter.CookieManager.SetCookie(cookieItem, false); ViewModelInstance.Instance.IsLogin = true; } else { cookieItem.Expires = null; filter.CookieManager.SetCookie(cookieItem); } }
public void InitData(object obj = null) { IsLoading = true; Task.Run(() => { try { HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter(); HttpCookieCollection cookieCollection = filter.CookieManager.GetCookies(new Uri(ViewModelInstance.Instance.UrlService.GetHomePage())); var cookieItem = cookieCollection.FirstOrDefault(p => p.Name.Equals("sodu_user")); if (cookieItem == null) { ViewModelInstance.Instance.IsLogin = false; } else { cookieItem.Expires = null; filter.CookieManager.SetCookie(cookieItem); } DispatcherHelper.CheckBeginInvokeOnUI(async() => { ViewModelInstance.Instance.MainPageViewModelInstance.ChangeLoginState(false); ViewModelInstance.Instance.MyBookShelfViewModelInstance.ShelfBookList.Clear(); ToastHeplper.ShowMessage("注销成功"); await Task.Delay(500); NavigationService.ContentFrame.Navigate(typeof(HomePage)); NavigationService.ClearStack(); }); } catch (Exception ex) { Debug.WriteLine(ex.Message); } finally { DispatcherHelper.CheckBeginInvokeOnUI(() => { IsLoading = false; }); } }); }
public IAsyncOperationWithProgress <HttpResponseMessage, HttpProgress> SendRequestAsync(HttpRequestMessage request) { return(AsyncInfo.Run <HttpResponseMessage, HttpProgress>(async(cancellationToken, progress) => { Uri requestUri = request.RequestUri; HttpBaseProtocolFilter filter = new HttpBaseProtocolFilter(); HttpCookieCollection cookieCollection = filter.CookieManager.GetCookies(requestUri); var csrf = cookieCollection.FirstOrDefault(cookie => cookie.Name == "X-CSRF-Token"); if (csrf != null) { request.Headers.Add(csrf.Name, csrf.Value); Debug.Write("csrf token added"); } //Debug.WriteLine(text); //request.Headers.Add("Custom-Header", "CustomRequestValue"); HttpResponseMessage response = await innerFilter.SendRequestAsync(request).AsTask(cancellationToken, progress); cancellationToken.ThrowIfCancellationRequested(); //response.Headers.Add("Custom-Header", "CustomResponseValue"); return response; })); }