using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WindowsFormsApp1.entity.tb; namespace WindowsFormsApp1.utils.tb { class TBCookieUtil { //解析账号 public static TBAccountLogin parseAccount(String cookie) { TBAccountLogin account = new TBAccountLogin(); string[] condition = { "," }; String[] sts = cookie.Split(';'); string[] conditions = { "=" }; Dictionary param = new Dictionary(); foreach (String st in sts) { String[] values = st.Split('='); param.Add(values[0].Trim(), values[1].Trim()); } foreach (String key in param.Keys) { Console.WriteLine(key); } if (param.Keys.Contains("lid")) { account.NickName = Uri.UnescapeDataString(param["lid"]); } if (param.Keys.Contains("unb")) { account.TbUid = param["unb"]; } if (param.Keys.Contains("login")) { account.Login = Convert.ToBoolean(param["login"]); } account.Cookie = cookie; return account; } //登录失效 public static void InvalidLogin(int position) { if (Constant.tbAccountMap.ContainsKey(position) && Constant.tbAccountMap[position].Login) { Constant.tbAccountMap[position].Login = false; Constant.tbAccountMap[position].UpdateTime = new DateTime(); } } //登录是否有效 public static bool IsLoginValid(int position){ return Constant.tbAccountMap.ContainsKey(position) && Constant.tbAccountMap[position].Login; } public static bool updateCookie(int position, String cookies) { TBAccountLogin login = parseAccount(cookies); if (login != null && login.Login) { //登录成功 if (WindowsFormsApp1.utils.Constant.tbAccountMap.ContainsKey(position)) { WindowsFormsApp1.utils.Constant.tbAccountMap.Remove(position); } WindowsFormsApp1.utils.Constant.tbAccountMap.Add(position, login); //上传Cookie ApiUtil.uploadCookie( cookies, null); return true; } return false; } } }