2

Windows 8 アプリに webview があります。WebView から Cookie にアクセスする方法はありますか? 応答 Cookie を取得するために cookiecontainer を使用しましたが、webview の Cookie jar にアクセスしたいと考えています。不可能な場合、ローカル フォルダーにアクセスできますか?

各アプリの Cookie がローカルのフォルダーに保存されていることがわかりました。

Metro アプリ Cookies %Root%\Users\%User%\AppData\Local\Packages\ %MetroAppName%\AC\INetCookies 各 Metro アプリに固有の Cookie ファイルが含まれます。データはテキストファイルに含まれています。

プログラムでアプリからコンテンツにアクセスする方法はありますか?

次のことを少し試してみます。

using Windows.Storage;

StorageFolder localFolder = ApplicationData.Current.LocalFolder;

更新: 上記のフォルダー INetCookies を探してみましたが、存在しないようです。

4

2 に答える 2

0

ネイティブの InternetGetCookieEx 呼び出しを使用できます

const int INTERNET_COOKIE_HTTPONLY = 0x00002000;

[DllImport("wininet.dll", CharSet = CharSet.Unicode, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);

static string InternetGetCookieEx(string url)
{
    uint sizeInBytes = 0;
    InternetGetCookieEx(url, null, null, ref sizeInBytes, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero);
    uint bufferCapacityInChars = (uint)Encoding.Unicode.GetMaxCharCount((int)sizeInBytes);
    var cookieData = new StringBuilder((int)bufferCapacityInChars);
    InternetGetCookieEx(url, null, cookieData, ref bufferCapacityInChars, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero);
    return cookieData.ToString();
}
于 2014-07-23T10:41:30.337 に答える
0

実際には、AppData\Local\Packages\PACKAGE_NAME フォルダーに移動して検索すると、Cookie のフォルダーが存在します。しかし、Microsoft のポリシーにより、PACKAGE_NAME フォルダー内のすべてのデータにアクセスすることはできません。

アクセスできるフォルダーは Local State、Temporary State、Permanent State のみですが、Cookie は AppData\Local\Packages\PACKAGE_NAME\AC\INetCache\SOME_KIND_OF_NAME フォルダーに保存され、メトロ アプリからはアクセスできません。

必要に応じて、以下の MSDN リンクにアクセスして、さらにクリアランスを取得できます。

http://msdn.microsoft.com/en-in/library/windows/apps/hh464917.aspx

http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.aspx
于 2012-12-18T13:23:21.090 に答える