gpt4 book ai didi

c# - 在 Windows Phone 上保留 HTTPOnly cookie

转载 作者:可可西里 更新时间:2023-11-01 08:48:19 25 4
gpt4 key购买 nike

我有一个通过 HTTPS 向 API 发送用户名和密码的应用程序。 API 返回 HTTPOnly cookie。

这意味着 cookie 对代码“不可见”,但仍然存在并将在后续请求中发送到服务器。

Set-Cookie header 从 HttpWebResponse.Headers 中剥离,cookie 不会出现在 HttpWebResponse.CookieHttpWebRequest.CookieContainer。但是,如果使用相同的 HttpWebRequest.CookieContainer 发出后续请求,它们将被发送到服务器,但代码无法访问它们。

据我所知,这使得它们无法以任何方式序列化或保存。似乎唯一的方法就是缓存实际的用户名和密码,然后每次都重新登录。

有什么我想念的吗?

最佳答案

您必须使用反射来查看存储在 cookie 容器中的 Cookie。

使用类似这样的东西看看你有什么,然后你可以尝试子类化来访问你想要的数据,或者经历将 cookie 存储在内存中的过程,从容器中删除它,然后将其添加为普通 cookie

    public List<Cookie> GetAllCookies(CookieContainer cc)
{
List<Cookie> lstCookies = new List<Cookie>();

Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, cc, new object[] { });

foreach (var pathList in table.Values)
{
SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, pathList, new object[] { });
foreach (CookieCollection colCookies in lstCookieCol.Values)
foreach (Cookie c in colCookies) lstCookies.Add(c);
}

return lstCookies;
}
public string ShowAllCookies(CookieContainer cc)
{
StringBuilder sb = new StringBuilder();
List<Cookie> lstCookies = GetAllCookies(cc);
sb.AppendLine("=========================================================== ");
sb.AppendLine(lstCookies.Count + " cookies found.");
sb.AppendLine("=========================================================== ");
int cpt = 1;
foreach (Cookie c in lstCookies)
sb.AppendLine("#" + cpt++ + "> Name: " + c.Name + "\tValue: " + c.Value + "\tDomain: " + c.Domain + "\tPath: " + c.Path + "\tExp: " + c.Expires.ToString());

return sb.ToString();
}

关于c# - 在 Windows Phone 上保留 HTTPOnly cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560653/

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