Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows 8应用程序Web视图提取cookie_C#_Windows 8 - Fatal编程技术网

C# Windows 8应用程序Web视图提取cookie

C# Windows 8应用程序Web视图提取cookie,c#,windows-8,C#,Windows 8,我的windows 8应用程序中有一个网络视图。是否有从webview访问cookies的方法?我使用cookiecontainer来获取响应cookies,但我希望能够访问webview的cookie jar。如果不可能,我可以访问本地文件夹吗 我发现每个应用程序的cookies都存储在本地文件夹中: Metro应用程序Cookies %Root%\Users\%User%\AppData\Local\Packages\ %MetroAppName%\AC\INetCookies 包含特定于每

我的windows 8应用程序中有一个网络视图。是否有从webview访问cookies的方法?我使用cookiecontainer来获取响应cookies,但我希望能够访问webview的cookie jar。如果不可能,我可以访问本地文件夹吗

我发现每个应用程序的cookies都存储在本地文件夹中:

Metro应用程序Cookies %Root%\Users\%User%\AppData\Local\Packages\ %MetroAppName%\AC\INetCookies 包含特定于每个Metro应用程序的cookie文件。数据包含在文本文件中

有没有办法通过编程方式访问应用程序中的内容

我稍后将尝试以下内容:

using Windows.Storage;

StorageFolder localFolder = ApplicationData.Current.LocalFolder;

更新:我试图查找上面的文件夹INetCookies,但它似乎不存在。

如果你去AppData\Local\Packages\Packages\u NAME文件夹中搜索它,那么实际上cookies文件夹确实存在。但根据微软的政策,我们无法访问PACKAGE_NAME文件夹中的所有数据

我们只能访问本地状态、临时状态和永久状态的文件夹,但Cookie保存在AppData\Local\Packages\PACKAGE\U NAME\AC\INetCache\SOME\U KIND\U NAME文件夹中,该文件夹无法从metro应用程序访问

如果需要,您可以通过以下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

您可以使用本机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();
}