WPF-正在读取Cookie文件,但在分配的文件夹中看不到它吗?

时间:2018-09-21 01:55:10

标签: c# wpf cookies

我正在制作WPF应用程序,用户在其中登录并存储其令牌。关闭应用程序并重新打开之后,如果令牌(存储为cookie)存在于我分配的文件夹目录中,则将其提取并显示在MessageBox中。

但是,当我手动在分配的目录中选中“隐藏文件”复选框时,我看不到它。我的cookie是保存在硬盘驱动器上还是实际上存储在Visual Studio中,直到我将该项目发布为可执行文件为止?

我的商店Cookie功能是:

private void StoreToken(string token)
    {
        Console.WriteLine("Value being stored in Cookie: " + token);
        Uri cookie = new Uri(@"C:\Program Files\WPFCookie");
        Application.SetCookie(cookie, (token + ";expires=Sat, 22-Sep-2018"));
    } 

我的查找Cookie函数是:

public string RequestToken()
    {
        try
        {
            Uri cookiePath = new Uri(@"C:\Program Files\WPFCookie");
            string response = Application.GetCookie(cookiePath);
            return response;
        }
        catch (Exception)
        {
            string response;
            response = "null";
            return response;
        }
    }

在我的MainWindow方法中调用了Find Cookie方法

 public MainWindow()
 {
        string cookie = requests.RequestToken();
        System.Windows.MessageBox.Show(cookie);
 }

我不明白的是,如果我将cookiePath中的RequestToken()更改为与存储它的路径不同的路径,它仍然会返回cookie,这在我看来是不可能的将其保存到其他路径。另外,我似乎在任何地方都找不到该文件。这怎么可能?

1 个答案:

答案 0 :(得分:1)

Cookie路径不是保存Cookie的位置!这是Cookie的名称。

请参阅:https://docs.microsoft.com/en-us/dotnet/api/system.windows.application.setcookie?view=netframework-4.7.2#System_Windows_Application_SetCookie_System_Uri_System_String_

  

永久性cookie存储在当前Windows安装目录中   Internet临时文件夹,直到它们过期,在这种情况下,它们   被删除。您可以从应用程序中删除永久性cookie   通过将其到期日期设置为过去的日期/时间值。