Вот я решил эту проблему сегодня. Я начал с this article на C# Corner, но нашел пример - в то время как технически звук - немного неполный. Все, что он сказал, было прав, но мне нужно было ударить по нескольким внешним сайтам, чтобы собрать это вместе, чтобы работать точно так, как я хотел.
Это не помогло, что пользователь не представил техническую форму вообще; они щелкали ссылку, чтобы перейти в наш центр поддержки, но чтобы зарегистрировать их в http-сообщении, нужно было отправить на сайт центра поддержки.
Это решение включает в себя использование HttpContext.Current.Response.Write(), чтобы записать данные по форме, а затем, используя немного JavaScript, на методе
<body onload="">
отправить форму для надлежащего URL.
Когда пользователь нажимает на ссылку Центра поддержки, следующий метод вызывается, чтобы написать ответ и перенаправить пользователя:
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>");
}
Ключ к этому методу в этом OnLoad немного Javascript, который, когда тело страницы загружается, отправляет форму и затем перенаправляет пользователя обратно на мою домашнюю страницу. Причиной этого кусочка hoodoo является то, что я запускаю внешний сайт в новом окне, но не хочу, чтобы пользователь повторно отправлял скрытую форму, если они обновляют страницу. Кроме того, скрытая форма подтолкнула страницу к нескольким пикселям, которые у меня на нервах.
Меня очень интересовали бы любые идеи по чище, которые есть у кого-либо на этом.
Эрик Сиппл