是否可以将POST数据从JSF应用程序发送到aspx .NET?

时间:2015-09-02 11:06:17

标签: c# asp.net asp.net-mvc jsf trinidad

在我们的JSF应用程序(MyFaces Trinidad)中,我们点击链接,将启动使用aspx(http://crd-dev:1890/Timeandreviews/Login.aspx)运行的应用程序。由于我们已经对用户进行了身份验证,因此我们必须将用户ID传递给ASPX应用程序。他们不希望在URL中收到这个GET参数,他们需要它作为POST数据。可以将其作为POST数据发送吗? 如果可能的话,如何发送JSF以及如何在ASPX中读取它。

我在JSF(.XHTML页面)中尝试过如下设置

mysql_query("INSERT INTO utenti (id,psw,nome,cognome,email,cellulare) VALUES (NULL,'$psw','$nome','$cognome','$email','$cell')"); //costruzione comando di ricerca

尝试在aspx中阅读 方法1:

ExternalContext ext = FacesContext.getCurrentInstance().getExternalContext();
    HttpServletRequest httpRequest = (HttpServletRequest) ext.getRequest();
    HttpSession httpSession = (HttpSession) ext.getSession(true);
    httpRequest.setAttribute("USER_HTREQ", "TST_USR");
    httpSession.setAttribute("USER_HTSES", "TST_USR");
    ext.getRequestMap().put("USER_REQMP", "TST_USR");
    try {
        ext.redirect("http://crd-dev:1890/Timeandreviews/Login.aspx");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

方法2:string[] keys = Request.Form.AllKeys; for (int i= 0; i < keys.Length; i++) { Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>"); }

但他们两个都在工作。请帮忙

1 个答案:

答案 0 :(得分:0)

由于您不需要发布数据,但也需要重定向用户,因此Apache HttpClient无法为您提供帮助。

最简单的解决方案是创建一个带有隐藏输入的表单,填充它们并发布表单。

<form method="post" id="form-id"
      action="http://crd-dev:1890/Timeandreviews/Login.aspx">
  <input type="hidden" name="input-id" id="input-id"/>
  etc.
</form>

您可以通过以下方式添加来自bean的Javascripts:

String script = "document.getElementById('input-id').value = 'value';"
              + "document.getElementById('form-id').submit();";
FacesContext fctx = FacesContext.getCurrentInstance();  
ExtendedRenderKitService erks =
    Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
erks.addScript(fctx, script);