2

これが私の状況ですが、少し奇妙かもしれません: としてログインしadmin、フォームのあるページに移動すると、何らかの理由で認証が失敗します (たとえば、長時間放置してページを閉じない、またはネットワークを切断し、後で接続します)、フォームを再度投稿すると、ログインページに移動します。ログイン ページは取得returnUrlして前のページにリダイレクトできますが、フォーム データはすべて失われています。最終結果は、アプリケーション エラー ページです。

ログインのリダイレクト セクションは次のとおりです。

    if (Membership.ValidateUser(userName, password))
    {
        if (!String.IsNullOrEmpty(returnUrl))
            return this.Redirect(303, returnUrl);
        else
            return this.Redirect(303, FormsAuthentication.DefaultUrl);
    }

では、どうすればフォームデータでリダイレクトできますか (多くのページで認証が必要なため、フォームデータはアクションごとに異なる場合があります)。

4

1 に答える 1

2

フォーム データでリダイレクトすることはできません。リダイレクトするときは、GET リクエストを使用しています。フォーム データは、POST 要求の本文にのみ含まれます。もちろん、すべてのフォーム データのキーと値をループして、それらをクエリ文字列パラメーターとしてターゲット URL に追加することもできますが、クエリ文字列の長さには制限があり、ブラウザーによって異なる可能性があることを忘れないでください。

于 2013-03-25T07:19:33.077 に答える