private static string BuildTokenPostFromInitialSiteRequest(string HTML, string userName, string password, out string postUrl)
{
////Get the PPSX value
string PPSX = "PassportR";
//Get this random PPFT value
string PPFT = HTML.Remove(0, HTML.IndexOf("PPFT"));
PPFT = PPFT.Remove(0, PPFT.IndexOf("value") + 7);
PPFT = PPFT.Substring(0, PPFT.IndexOf("\""));
string scriptBody = null;
var scriptMatch = Regex.Match(HTML, "<script type=\"text/javascript\">var ServerData = {(.)*};</script>");
if (scriptMatch.Success)
{
scriptBody = scriptMatch.Value;
}
int firstBracket = scriptBody.IndexOf('{');
int lastBracket = scriptBody.LastIndexOf('}');
scriptBody = scriptBody.Substring(firstBracket, lastBracket - firstBracket + 1);
var jsonSerializer = new Newtonsoft.Json.JsonSerializer();
dynamic serverData = jsonSerializer.Deserialize(new Newtonsoft.Json.JsonTextReader(new StringReader(scriptBody)));
postUrl = serverData.urlPost;
string requestToken = string.Format("login={0}&passwd={1}&PPSX={2}&LoginOptions=2&PPFT={3}", userName, password, PPSX, PPFT);
return requestToken;
}