我正在尝试制作一个通用登录页面,该页面采用登录信息实际提交到的 redirectPage。
应用程序的流程是这样的:
- 输入用户名并登录并进行我自己的身份验证
- 一旦通过身份验证,我会检索 2 个不相关的变量( varA、varB )
- 现在我需要通过 post 将 varA 和 varB 提交到 redirectPage。我不想做会话变量或查询字符串。我想做重定向和发布,就像您从表单发布一样。
到目前为止,我在 SO 上看到的是客户刚刚发布并获得回复的地方。我不关心我也想重定向到此页面的响应。
这将花费往返(就像Response.Redirect()
那样),但这是一种理智的方式来做你想做的事。
public void ReirectPost(string redirectUrl, Dictionary<string,string> vars)
{
Response.Clear();
StringBuilder sb = new StringBuilder();
sb.Append("<html>");
sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
sb.AppendFormat("<form name='form' action='{0}' method='post'>", redirectUrl);
foreach(var v in vars)
sb.AppendFormat("<input type='hidden' name='{0}' value='{1}'>", v.Key, v.Value);
sb.Append("</form></body></html>");
Response.Write(sb.ToString());
Response.End();
}