ここで私はこの問題を今日解決しました。私はC#コーナーのthis articleから始めましたが、この例は技術的には聞こえませんが、少し不完全です。彼が言ったことはすべて正しいと思っていましたが、私はこれをまとめていくつかの外部サイトを打つ必要がありました。
ユーザーが技術的にフォームを提出していないとは限りません。彼らは私たちのサポートセンターに行くためにリンクをクリックしていましたが、http postに記録するにはサポートセンターのサイトに行ってください。
次いで、この溶液を適切なURLにフォームを提出する
<body onload="">
方法でJavaScriptのビットを使用して、フォームのデータを書き込むためにHttpContext.Current.Response.Write()を使用することを含みます。サポートセンターのリンクをユーザーがクリックすると、次のような方法が応答を書いて、ユーザーをリダイレクトするために呼び出され
:
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>");
}
この方法の鍵は、Javascriptののonloadのビットです、ページの本文がロードされると、フォームが送信され、ユーザーが自分のホームページにリダイレクトされます。私が外部サイトを新しいウィンドウで起動しているが、ユーザーがページを更新しても隠しフォームを再送信しないようにするという理由から、加えて、隠されたフォームは、ページを私の神経に乗った数ピクセル下に押し込んだ。
私はこの誰かが持っているよりクリーンなアイデアに非常に関心があります。
エリックSipple