Exemple #1
0
 public async Task<bool> LogIn(UrlVisitor visit)
 {
     // Build some dummy pages
     String dLog = "<html><a href='file://{0}'>Test Login</a></html>";
     String dSuc = "<html>Success!</html>";
     String fLog = Path.GetTempFileName() + ".html";
     String fSuc = Path.GetTempFileName() + ".html";
     dLog = String.Format(dLog, fSuc);
     File.WriteAllText(fLog, dLog);
     File.WriteAllText(fSuc, dSuc);
     if (!await visit("file://" + fLog, HtmlIsSuccess))
         return false;
     remembered = new SeeUserLogin() { Token = "TOKEY", Secret = "SECREY" };
     await Task.Delay(2000);
     return true;
 }
 // methodies
 public async Task<bool> LogIn(UrlVisitor visit)
 {
     await visit(DB_OAUTH2_AUTHORISE(RT.Token, KEY, resultUri),
                     (uri, data) =>
                     {
                         if (uri.StartsWith(resultUri))
                         {
                             var parms = uri.Substring(uri.IndexOf('#') + 1);
                             var args = parms.Split('&');
                             Dictionary<String, String> vals = new Dictionary<string, string>();
                             foreach (var arg in args)
                             {
                                 int ei = arg.IndexOf('=');
                                 var key = arg.Substring(0, ei);
                                 var val = arg.Substring(ei + 1);
                                 vals[key] = val;
                             }
                             wc = new DWebClient(vals["access_token"]);
                             JObject info = JObject.Parse(wc.GetString(DB_ACCOUNT_INFO));
                             String em = info["email"].Value<String>();
                             if(remembered.accounts.FindAll(a => a.name == em).Count == 0)
                             {
                                 remembered.accounts.Add(new Account() { name = em, token = vals["access_token"] });
                                 FileStream fs = new FileStream(cfn, FileMode.OpenOrCreate);
                                 xs.Serialize(fs, remembered);
                                 fs.Close();
                             }
                             return true;
                         }
                         return false;
                     });
     return false;
 }