Přístup k WebView cookies ve WinRT

Při vývoji mé Windows 8.1 aplikace jsem potřeboval využít ASP.NET Identity pro autentizaci v ASP.NET Web API službě. Protože Identity kromě klasického lokálního přihlašování nabízí i možnost sociálního (externího) přihlašování přes Facebook, Microsoft Account a další, rozhodl jsem se implementovat i tuto funkčnost. Bohužel, autentizace tímto způsobem vyžadovala využití cookies, které musí být následně přeposlány dál na endpoint, který dokončí registraci nového uživatele. Protože této proces je nutné začít v ovládacím prvku WebView, potřebujeme z něho získat potřebné cookie. WebView ale žádné metody ani vlastnosti, které by se k tomuto účelu daly využít nenabízí. Jak to můžeme vyřešit?

Ve skutečnosti je možné získat přístup ke kolekci cookies globálně, bez přímého přístupu ke konkrétnímu WebView.

Vytvoříme si novou instance třídy  HttpBaseProtocolFilter a následně použijeme vlastnost CookieManager . Její typ  HttpCookieManager nabízí několik zajímavých metod:

  • GetCookies – vrací kolekci HttpCookieCollection, která obsahuje cookies pro dané URI
  • SetCookie – nastaví cookie
  • DeleteCookie – smaže cookie

Abychom nyní mohli přečíst všechny cookie, které jsou dostupné pro nějakou adresu URI, stačí nám jednoduše projít obsah  HttpCookieCollection , kterou vrací metoda GetCookies :

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*