2014-12-01 5 views
1

Windows Phone 응용 프로그램에서 WebBrowser 컨트롤을 사용했습니다. 웹 브라우저 컨트롤을 사용하여 응용 프로그램에 로그인하고 있습니다. 로그 아웃 할 때 사용자를 다시 로그인 페이지로 다시 보내고 웹 브라우저 컨트롤의 캐시와 쿠키를 지우려고합니다.Windows phone 8에서 WebBrowser 컨트롤의 캐시를 지울 수 없습니다.

mybrowser.ClearCookiesAsync(); 
mybrowser.ClearInternetCacheAsync(); 

로그인 화면을 표시하는 대신 이전 자격 증명을 얻고 응용 프로그램에 로그인합니다. 누구든지 webbrowser conteol의 쿠키와 캐시를 비우는 데 나를 도울 수 있습니까? 전체 코드는 :

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
     { 
      base.OnNavigatedTo(e); 
      App.AccessToken = ""; 
      myBrowser.Navigate(new Uri(login URL)); 

     } 
     void Navigating(object sender, NavigatingEventArgs e) 
     { 
      if (Login complete) 
      { 
       clearCahe(); 
      } 
     } 
public async void clearCahe() 
     { 
      await myBrowser.ClearCookiesAsync(); 
      await mybrowser.ClearInternetCacheAsync(); 
     } 
+0

당신'그 전화를 awaiting'있다 또한 비동기

같은 호출 함수와 같은 뭔가를해야이 문제를 해결하려면? –

+0

@ChubosaurusSoftware : 예. 나는 그들을 기다리고 있습니다. 심지어 내가이 시도했다 : var cookies = myBrowser.GetCookies(); foreach (쿠키의 쿠키 항목) { if (item.Domain.Contains ("microsoft.com")) { item.Discard = true; item.Expired = true; } } –

+0

두 가지 방법을 사용하지 않으면 최선의 방법은 'WebBrowser' 컨트롤을 처리하고 그 대신에 새 것을 생성하는 것입니다. –

답변

0

async functions의 정보는 다음의 제품에 사용을 얻을 어렵다. 중단 점을 넣으면

await myBrowser.ClearCookiesAsync(); // put a break point here then step-in (F11 on the keyboard) 

실제로는 기다리지 않고 계속 즐거운 방법으로 보게 될 것입니다.

는이

using System.Threading.Task; 

public async Task<bool> clearCahe() 
{ 
    await myBrowser.ClearCookiesAsync(); 
    await mybrowser.ClearInternetCacheAsync(); 
    return true; 
}  

private async void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) 
{ 
    await clearCache(); 
    // then navigate the page 
} 
+0

고마워, 나도 이걸 시험해 볼거야. –

+0

@KdSingh는 무슨 일이 일어나는 지 알려주고, 그것은 나를 위해 일합니다. –

+0

미안하지만,이 접근법은 나에게 도움이되지 않습니다. 캐시 onload와 onnavigatedfrom 이벤트를 지우고 있습니다. –

관련 문제