本帖最后由 小哲 于 2016-10-21 18:29 编辑
用万能框架写了一个DZ带验证码POST登录一直错误 http://www.sufeinet.com/thread-17795-1-1.html 调试半天发现是框架GetMergeCookie的问题,,,真坑。。。
OldCookie
[C#] 纯文本查看 复制代码
F9ZL_2132_saltkey=oHLnJLwj;F9ZL_2132_lastvisit=1477040054;
F9ZL_2132_sid=ZsTR8p;
F9ZL_2132_lastact=1477043654%09member.php%09logging;
F9ZL_2132_pc_size_c=0;
F9ZL_2132_stats_qc_reg=deleted
NewCookie
[C#] 纯文本查看 复制代码 F9ZL_2132_lastact=1477043656%09misc.php%09seccode
HttpHelper.GetMergeCookie 合并更新后 导致有两个 F9ZL_2132_lastact=
[C#] 纯文本查看 复制代码
F9ZL_2132_saltkey=oHLnJLwj ;
F9ZL_2132_lastvisit=1477040054 ;
F9ZL_2132_sid=ZsTR8p ;
F9ZL_2132_lastact=1477043654%09member.php%09logging ;
F9ZL_2132_pc_size_c=0 ;
F9ZL_2132_stats_qc_reg=deleted ;
F9ZL_2132_lastact=1477043656%09misc.php%09seccode
正确更新后:
[C#] 纯文本查看 复制代码
F9ZL_2132_saltkey=oHLnJLwj;
F9ZL_2132_lastvisit=1477040054;
F9ZL_2132_sid=ZsTR8p;
F9ZL_2132_lastact=1477043656%09misc.php%09seccode;
F9ZL_2132_pc_size_c=0;
F9ZL_2132_stats_qc_reg=deleted
拼了个方法解决了这个,账号也登录成功了。勿喷,,不知道框架那个是不是BUG。。。
[C#] 纯文本查看 复制代码 public static string MergerCookies(string OldCookie, string NewCookie)
{
if (!string.IsNullOrEmpty(OldCookie) && !string.IsNullOrEmpty(NewCookie))
{
if (OldCookie == NewCookie) return OldCookie;
else
{
List<string> Old = new List<String>(OldCookie.Split(';'));
List<string> New = new List<String>(NewCookie.Split(';'));
foreach (string n in New)
{
foreach (string o in Old)
{
if (o == n || o.Split('=')[0] == n.Split('=')[0])
{
Old.Remove(o);
break;
}
}
}
List<string> list = new List<string>(Old);
list.AddRange(New);
return string.Join(";", list.ToArray());
}
}
else if (!string.IsNullOrEmpty(OldCookie)) return OldCookie;
else if (!string.IsNullOrEmpty(NewCookie)) return NewCookie;
else return "";
}
|