public static async Task <HttpResponseMessage> RecoveryConfirmGetAndPostFormAsync( this HttpClient client, string confirmUrl, string newPassword, HttpResponseMessage prevResponse = null) { HttpResponseMessage getResponse = client.GetAsync(confirmUrl).Result; getResponse.EnsureSuccessStatusCode(); IHtmlDocument doc = await getResponse.Content .ReadAsHtmlDocumentAsync(); Dictionary <string, string> form = doc.GetFormInputs(); form["Password"] = newPassword; form["PasswordConfirm"] = newPassword; HttpResponseMessage postResponse = await client .PostAsync(doc.GetFormAction(), form, getResponse); postResponse.StatusCode.Should().Be(HttpStatusCode.Found); postResponse.Headers.Location.ToString().Should() .StartWith("/connect/authorize/callback"); return(postResponse); }
public static async Task <HttpResponseMessage> LoginGetAndPostFormAsync( this HttpClient client, string emailAddress, string password, bool rememberMe = false, HttpResponseMessage prevResponse = null) { HttpResponseMessage getResponse = await client.GetAsync( $"/login?returnUrl={Constants.ReturnUrl}", prevResponse ); getResponse.EnsureSuccessStatusCode(); string html = await getResponse.Content.ReadAsStringAsync(); // 5. Fill out the login form and submit IHtmlDocument doc = await getResponse.Content .ReadAsHtmlDocumentAsync(); Dictionary <string, string> form = doc.GetFormInputs(); form["Email"] = emailAddress; form["Password"] = password; form["RememberLogin"] = rememberMe ? "true" : "false"; HttpResponseMessage postResponse = await client .PostAsync(doc.GetFormAction(), form, getResponse); return(postResponse); }
public static async Task <HttpResponseMessage> ConstentPostFormAsync( this HttpClient client, bool rememberMe, HttpResponseMessage formGetResponse) { formGetResponse.StatusCode.Should().Be(HttpStatusCode.Found); HttpResponseMessage authorizeResponse = await client .FollowRedirect(formGetResponse); authorizeResponse.StatusCode.Should().Be(HttpStatusCode.Found); HttpResponseMessage constentGetResponse = await client .FollowRedirect(authorizeResponse); // just submit form as is IHtmlDocument doc = await constentGetResponse.Content .ReadAsHtmlDocumentAsync(); Dictionary <string, string> form = doc.GetFormInputs(); //form["RememberLogin"] = rememberMe ? "true" : "false"; HttpResponseMessage constentPostResponse = await client .PostAsync(doc.GetFormAction(), form, constentGetResponse); constentPostResponse.EnsureSuccessStatusCode(); return(constentPostResponse); }
public static async Task <HttpResponseMessage> RegisterConfirmGetAndPostFormAsync( this HttpClient client, string confirmUrl, string password = null, HttpResponseMessage prevResponse = null) { HttpResponseMessage getResponse = client.GetAsync(confirmUrl).Result; getResponse.EnsureSuccessStatusCode(); IHtmlDocument doc = await getResponse.Content .ReadAsHtmlDocumentAsync(); Dictionary <string, string> form = doc.GetFormInputs(); if (!String.IsNullOrWhiteSpace(password)) { form["Password"] = password; form["PasswordConfirm"] = password; } HttpResponseMessage postResponse = await client .PostAsync(doc.GetFormAction(), form, getResponse); return(postResponse); }
public static async Task <HttpResponseMessage> RecoveryPostFormAsync( this HttpClient client, string emailAddress, HttpResponseMessage formGetResponse) { IHtmlDocument doc = await formGetResponse.Content .ReadAsHtmlDocumentAsync(); Dictionary <string, string> form = doc.GetFormInputs(); form["Email"] = emailAddress; HttpResponseMessage response = await client .PostAsync(doc.GetFormAction(), form, formGetResponse); response.EnsureSuccessStatusCode(); return(response); }