我遇到了这段代码的问题:
protected void btnLogin_Click(object sender, EventArgs e)
{
StringBuilder sbRenderOnMe = new StringBuilder();
string strUser = GetUser().UserName;
string strKey = "xxxxxxxxx";
// the form and the data
sbRenderOnMe.AppendFormat(
"<html><body><form action=\"http://thepagetologin.com/api/blele.php\" method=\"post\" name=\"form1\">"
+ "<input value=\"gg\" id=\"client\" name=\"client\" type=\"hidden\" />"
+ "<input value=\"{0}\" id=\"key\" name=\"key\" type=\"hidden\" />"
+ "<input value=\"{1}\" id=\"user\" name=\"user\" type=\"hidden\" />"
+ "<input value=\"login\" id=\"action\" name=\"action\" type=\"hidden\" />"
+ "<input name=\"redirect\" value=\"true\" type=\"hidden\" />"
+ "<input type=\"submit\" name=\"Button1\" value=\"open\" id=\"Button1\" />"
+ "</form>", strKey, strUser);
// the auto submit
sbRenderOnMe.AppendFormat("<script>document.form1.submit();</script>");
sbRenderOnMe.AppendFormat("</body></html>");
Response.Write(sbRenderOnMe.ToString());
Response.End();
}
此代码生成一个按钮,然后提交该按钮并将用户重定向到新页面并将该用户记录下来。
部分用户对此代码有疑问,我认为可能是javascript未启用或其他内容。
有人可以帮我用普通的C#代码重新打印这段代码,所以我不必在上面使用这个javascript方法吗?
答案 0 :(得分:0)
你可以这样试试
Response.Redirect("http://thepagetologin.com/api/blele.php?client=gg&key="+strKey+"....");
答案 1 :(得分:0)
我似乎错过了一些东西所以我不得不问为什么你甚至需要做JavaScript和所有那些渲染?
您似乎在ASP.Net WebForms页面的(服务器端)<form/>
内呈现另一种形式,这是您无法做到的(无法嵌套)形式)
我可以看到一个可能的原因是你/想要POST
到外部应用程序(Php)。如果这是您的目标,则POST
使用Button.PostbackUrl
<asp:button id="Button1"
text="Post value to another page"
postbackurl="http://thepagetologin.com/api/blele.php"
runat="Server">
</asp:button>
从MSDN链接复制/粘贴的示例(已修改为添加您的php目标):
{{1}}
<强>更新强>
我发布了一些我不希望用户能够看到的信息
在这种情况下,如果它是敏感数据,您当前的Javascript实现(似乎)不满足该要求。您可以检查/查看客户端所做的任何事情(即使它没有“显示”) - 从浏览器看到POSTed数据是微不足道的 - 不需要特殊工具,你可以使用内置开发工具的Chrome / FF / IE ...
你必须做服务器端这样的事情,因此(敏感的)数据对客户端来说是“无法访问的”(根本) - 尽管这会改变流程/取决于PHP应用程序(POSTed数据的目标)。 PHP方面是“你的”应用程序吗?