Iată că am rezolvat această problemă astăzi. Am început de la acest articol pe C# Corner, dar a găsit exemplul - în timp ce din punct de vedere tehnic sunet - puțin incomplet. Tot ce a spus a avut dreptate, dar a trebuit sa lovesc cateva site-uri externe pentru a face acest lucru impreuna pentru a lucra exact asa cum vroiam.
Nu a contribuit la faptul că utilizatorul nu a prezentat tehnic un formular; ei făceau clic pe un link pentru a merge la centrul nostru de asistență, dar să le înregistreze într-un post http a trebuit să fie făcute pe site-ul centrului de asistență.
Această soluție implică utilizarea HttpContext.Current.Response.Write() pentru a scrie datele pentru formular, apoi folosind un pic de Javascript pe
<body onload="">
metoda de a trimite formularul la adresa URL corectă.
Când utilizatorul face clic pe link-ul Centrului de asistență, se apelează următoarea metodă pentru a scrie răspunsul și a redirecționa utilizatorul:
public static void PassthroughAuthentication()
{
System.Web.HttpContext.Current.Response.Write("<body
onload=document.forms[0].submit();window.location=\"Home.aspx\";>");
System.Web.HttpContext.Current.Response.Write("<form name=\"Form\"
target=_blank method=post
action=\"https://external-url.com/security.asp\">");
System.Web.HttpContext.Current.Response.Write(string.Format("<input
type=hidden name=\"cFName\" value=\"{0}\">", "Username"));
System.Web.HttpContext.Current.Response.Write("</form>");
System.Web.HttpContext.Current.Response.Write("</body>");
}
Cheia acestei metode constă în bitul de încărcare a Javascript, care, atunci când corpul paginii se încarcă, trimite formularul și apoi redirecționează utilizatorul înapoi la propria pagină de pornire. Motivul pentru acest bit de hoodoo este că lansez site-ul extern într-o fereastră nouă, dar nu vreau ca utilizatorul să retrimită formularul ascuns în cazul în care actualizează pagina. În plus, acea formă ascunsă a împins pagina în jos cu câțiva pixeli care mi-au luat nervii.
Aș fi foarte interesat de orice idee mai curată pe care o are cineva despre asta.
Eric Sipple