gpt4 book ai didi

javascript - 如何从 ASP.Net 发布然后重定向到外部 URL?

转载 作者:IT王子 更新时间:2023-10-29 03:16:03 24 4
gpt4 key购买 nike

ASP.NET 服务器端控件回发到它们自己的页面。这使得您想要将用户重定向到外部页面,但由于某种原因(例如身份验证)需要发布到该页面的情况变得很痛苦。

如果您不想重定向,HttpWebRequest 可以很好地工作,并且 JavaScript 在某些情况下很好,但如果您确实需要服务器端代码来获取数据,则可能会变得棘手的职位。

那么如何发布到外部 URL 并将用户重定向到 ASP.NET 代码隐藏代码的结果?

最佳答案

这是我今天解决这个问题的方法。我从this article开始在 C# Angular ,但发现该示例 - 虽然技术上合理 - 有点不完整。他说的一切都是正确的,但我需要访问几个外部站点才能将其拼凑起来,才能完全按照我的意愿工作。

从技术上讲,用户根本没有提交表单,这无济于事;他们单击链接转到我们的支持中心,但要将他们记录在支持中心的网站上,必须在 http 帖子中记录。

此解决方案涉及使用 HttpContext.Current.Response.Write()为表单写入数据,然后在 <body onload=""> 上使用一些 Javascript方法将表单提交到正确的 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>");
}

此方法的关键在于 Javascript 的 onload 位,它在加载页面正文时提交表单,然后将用户重定向回我自己的主页。出现这种不祥之兆的原因是我在新窗口中启动外部站点,但不希望用户在刷新页面时重新提交隐藏的表单。此外,隐藏的表单将页面向下推了几个像素,这让我很不安。

我对任何人对此有任何更清晰的想法非常感兴趣。

埃里克·西普尔

关于javascript - 如何从 ASP.Net 发布然后重定向到外部 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com