1

ログインページを備えた単純な ASP.NET Web アプリケーションがあります。ユーザーが資格情報を入力してフォームを送信すると、サーバーが詳細を処理し、成功した場合は、Response.Redirect() によってユーザーがメイン メニュー ページに移動します。(ユーザーが同様の response.redirects を介して他のページに移動できるナビゲーション バーもあります)

お客様の 1 人が IBM Data Power Web アプリケーション ファイアウォールをセットアップしており、POST 後のこのリダイレクトは RFC 違反であり、その結果、アプリケーションが機能しないとのことでした。

Get/Post/Redirect に関連する質問がいくつかありますが、302 応答を get または post として使用するかどうかはブラウザーの裁量次第であることを示しています。また、公共のインターネット上で他のリンクも見つけたので、これは IBM デバイスが処理するように構成できるものであると確信しました。

IBM デバイス構成の変更を提案する前に、GET 要求でログイン資格情報を送信できる、またはすべてをサイトのポストバックは、POST の代わりに GET を使用しますか?

また、この IBM デバイスを使用するためのヒントをお持ちの方がいらっしゃいましたら、よろしくお願いいたします。

コードの例...

var userName = txtUserName.Text.Trim();
var password = txtPassword.Text.Trim();
var authResult = GetAuthService().AuthenticateUser(userName, password);
if (authResult == true)
{
 //set forms auth cookie
 Response.Redirect("Menu.aspx", false);
}
else
{
 lblError.Text = "Unable to login";
}
4

1 に答える 1

1

リダイレクトが続く POST は、多くの実装で見られる通常のメカニズムです。たとえば、JAAS 認証の使用を検討してください。ユーザーにフォームを提示すると、'*/j_security_check' URL に投稿されます。認証されると、リソース ページにリダイレクトされます。認証されない場合は、エラー ページにリダイレクトされます。

datapower で何が構成されているかはわかりませんが、開発者がこれに MPGW コンストラクトを使用している場合は、その「詳細」タブにある 2 つのプロパティを試してみることができます。1 つは「リダイレクトに従う」で、もう 1 つは「空のリクエスト」を許可するものです。

これはあなたを助けるかもしれません。

于 2015-10-20T13:01:16.060 に答える