Web アプリケーションの最初のページにキャプチャを実装しています。ログインページで。キャプチャ値は、検証のために login.aspx ページでアクセスする必要がある汎用ハンドラーで設定されます。
ユーザーがログイン ページにアクセスするたびにセッション ID をリセットするコードを追加するまで、キャプチャは問題なく機能していました。login.aspx でもページの読み込みにこれがあります。
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
Session.Abandon();
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""));
}
}
私はこのコードでも新しいセッションIDを取得しようとしました:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
SessionIDManager manager = new SessionIDManager();
string newID = manager.CreateSessionID(Context);
bool redirected = false;
bool isAdded = false;
manager.SaveSessionID(Context, newID, out redirected, out isAdded);
}
}
sessionId をリセットしているため、login.aspx のハンドラーに保存されているセッション パラメーターを取得できません。いいえ、ページの読み込みでセッションをリセットし、制御がセッションパラメーターが設定されているハンドラーに移動するため、ログインをクリックすると、入力された値でハンドラーに設定されたセッションパラメーターを確認したい理由がわかりません。しかし、どういうわけか、セッションパラメーターにアクセスできません。「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というエラーが表示されます。
監査会社から依頼されたので、SessionId をリセットする必要があります。SessionID のリセットと Captcha の使用の両方を達成する方法について何か提案はありますか?