通过后面的c#代码发布到URL vales

时间:2013-02-12 20:54:15

标签: c# .net

我正在尝试创建一个通用登录页面,该页面采用登录信息实际提交的redirectPage。

应用程序的流程如下:

  1. 接受用户名和登录并进行自己的身份验证
  2. 经过身份验证后,我会检索2个不相关的变量(varA,varB)
  3. 现在我需要通过post将varA和varB提交到redirectPage。我不想做会话变量或查询字符串。我想要重定向和发布,就像你从表单发帖一样。
  4. 到目前为止,我在SO上看到的是客户刚刚张贴并获得​​回复的地方。我不关心我想要重定向到此页面的响应。

1 个答案:

答案 0 :(得分:0)

这将花费往返(如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();
}