gpt4 book ai didi

c# - 是否可以在服务器端对外部 HTTPS url 执行 POST 并将用户重定向到 POST 目的地?

转载 作者:行者123 更新时间:2023-11-30 17:41:15 26 4
gpt4 key购买 nike

所以我可以执行以下操作 POST提交

@Html.BeginForm(null, null, FormMethod.Post, new { @action = "https://externalsite.com/secretroom" })
{
<input id="SECRETCODE" name="SECRETCODE" type="hidden" value="GABEN" />
<input type="submit" value="submit"/>
}

提交后,它会带我到https://externalsite.com/secretroom .但是正如您所看到的 SECRETCODE正在用户 HTML 页面中公开,我不希望这样。

所以我要做的是尝试在我的服务器端执行 POST。

public ActionResult Test()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://externalsite.com/secretroom");
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("SECRETCODE", "GABEN")
});
var result = await client.PostAsync("", content).Result;
if(result.IsSuccessStatusCode)
{
return Redirect("https://externalsite.com/secretroom");
}
}
}

问题是我无法重定向用户,因为 externalsite会否认它,我不知道/无法控制 secretroom验证适用于 externalsite .如果我按照上面的方式进行操作,它将只允许访问。

话虽这么说,这真的可能吗?

最佳答案

编辑:在更清楚地了解您要完成的目标之后,我认为您无法做到这一点。特别是因为在您的第一个示例中,您实际上是在向用户浏览器发送一个响应,该浏览器会将他们重定向到目标站点并发送乘车的表单参数。然而,以编程方式发布数据是在浏览器的带外。这两种方法不可互换。如果您不满意以这种方式发送敏感数据,您很可能需要与网站提供商合作以确定替代方法。

原始解决方案

您可以使用 WebRequest 类以编程方式 POST 数据。

WebRequest request = WebRequest.Create("https://externalsite.com/secretroom");
request.Method = "POST";
... rest omitted - refer to link below for specifics ...

https://msdn.microsoft.com/en-us/library/debx8sh9%28v=vs.110%29.aspx

此外,您可能想引用以下 SO 问题以了解有关 WebRequest 类变体的详细信息,即 HttpWebRequest、FtpWebRequest 等。

C# HttpWebRequest vs WebRequest

关于c# - 是否可以在服务器端对外部 HTTPS url 执行 POST 并将用户重定向到 POST 目的地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273117/

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