gpt4 book ai didi

c# - CookieContainer.Add 期间发生 CookieException,部分 cookie 无效

转载 作者:行者123 更新时间:2023-11-30 19:40:40 25 4
gpt4 key购买 nike

我有一个需要与服务器通信的 Windows Phone 8 应用程序。当我调用服务器上的登录服务(位于子目录“/authentication”下)时,服务器将 cookie 设置到我的 HttpClient 的客户端处理程序。然后我获取此 Cookie 并将其存储在 IsolatedStorageSettings 中。当我关闭并重新打开我的应用程序,从而重新实例化我的 HttpClient 时,我想从 IsolatedStorageSettings 获取 Cookie 并将其设置为我的客户处理程序手动。但是,我收到一个 CookieException 消息:“Cookie 的‘Domain’=‘mobile.some-domain.com’部分无效。”

我为此写的代码如下:

public static void saveCookies()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
var cookies = handler.CookieContainer.GetCookies(new Uri(ROOT + "/authentication"));
settings["sessionCookie"] = cookies["JSESSIONID"];
settings.Save();
}

public static bool checkCookies()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("sessionCookie"))
{
Cookie c = settings["sessionCookie"] as Cookie;
Uri uri = new Uri(ROOT + "/authentication");
handler.CookieContainer.Add(uri, c);
return true;
}
return false;
}

ROOT 是“https://mobile.some-domain.com/ERSMobileApps/services”,处理程序的类型是HttpClientHandler

我是第一次处理 cookie,因此,如果对此有任何帮助/评论,我们将不胜感激。提前致谢。

最佳答案

documentation说:“如果您仅为一个特定主机添加 Cookie 实例,请不要设置 Cookie 实例的域属性。这是根据 URI 自动设置的。”所以,我将 changed checkCookies 更改为:

public static bool checkCookies()
{
IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains("sessionCookie"))
{
Cookie c = settings["sessionCookie"] as Cookie;
Cookie newCookie = new Cookie(c.Name, c.Value, c.Path);
Uri uri = new Uri(ROOT + "/authentication");
handler.CookieContainer.Add(uri, newCookie);
return true;
}
return false;
}

到目前为止我没有任何问题。

关于c# - CookieContainer.Add 期间发生 CookieException,部分 cookie 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22193899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com