1

フォームでPOSTメソッド(GET申し訳ありません)を使用して、従来のASPアプリケーションからASP.NETアプリにデータを渡す必要があります。

アクションがターゲットaspxページである場合、これは機能しないようですが、ASP.NETアプリはフォーム認証を使用しています。これは、パイプラインのどこかで、Request.Formコレクションがnullであるため、データが失われたように見えるためです。ログインページのPage_Loadメソッド。

フォーム認証を無効にすると、ターゲットページは問題なく投稿されたデータを受信します。

この問題を回避するにはどうすればよいか知っていますか?このデータはいつどこで入手できますか?

前もって感謝します!

4

3 に答える 3

1

POSTのターゲットである単一のページの保護を解除できますか?

web.configで:

<configuration>
  <location path="MyPostHandlingPage.aspx">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
</configuration>
于 2010-01-29T16:09:26.693 に答える
1

投稿されたヘッダーをASPX側で維持しているセッションオブジェクトに転送し、その目的が完了すると強制終了される可能性があります。

void Session_Start(object sender, EventArgs e) 
{
    // Code that runs when a new session is started
    SortedList sList = new SortedList();
    foreach (string key in HttpContext.Current.Request.Form.Keys)
    {
        sList.Add(key, HttpContext.Current.Request.Form[key]);
    }
    Session.Add("myList", sList);

}
于 2010-01-29T16:19:08.167 に答える
0

aspからaspxにデータを転送する2つの可能な方法は次のとおりです。

  1. SQL DB経由のセッションの使用(参照http://msdn.microsoft.com/en-us/library/aa479313.aspx

  2. 以下のように、中間ASPページでQueryStringを使用します。

最初のASPページ:sample.asp

<% language="VBScript"%>
<html>
<head>
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" action="process.asp" method="post">
    <div>
        &nbsp;<input name="Text1" id="Text1" type="text" />
        <input id="Submit2" type="submit" value="submit" /></div>
    </form>
</body>
</html>

中間ページ:process.asp

<%@ language="vbscript"%>
<html>
<head>
    <title>Untitled Page</title>
</head>
<body>
    <form id="form2">
    <%response.Write(Request.Form("Text1"))
     %>
    <%response.Redirect("default3.aspx?icontent=" & Request.Form("Text1"))  %>
    </form>
</body>
</html>

ASPXコードページ:Default.aspx

public partial class Default3 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(Request.QueryString["icontent"].ToString());
    }

}
于 2009-12-13T06:50:59.570 に答える