0

私はこの史跡を持っていますが、これは不活性に壊れており、交換の過程にあります。ただし、交換サイトの準備が整うまで、このサイトを維持する必要があります。

問題は、ログインしているユーザーのグループコードを知る必要があるサイトがあることです。たとえば、Group1とGroup2の2つのグループがあります。

ログインページでは、デフォルトでは... / login.aspxであり、セッション(group = Group1)に保存され、使用する場合は... / login.aspx?group=でログインページに移動します。 Group2の場合、代わりにGroup2がセッションに保存されます。

これがこのように行われた理由は、認証のための非常に複雑なログイン画面であり、複数のセッション変数用にサイトを設定するために必要であるため、私の時間の前にありました。これは、ログインページを置き換えることはこの段階ではオプションではないことを意味します。

セッションがタイムアウトしたときに、ユーザーがログインページの正しいバリエーションに戻され、このページに戻ることができるように、ユーザーが表示されていたページを記憶するようにするために必要なこと。

最小限の解決策は、正しいログインバージョンにリダイレクトすることです。辞任後に元のページに戻ることは、「希望する」機能にすぎません。

誰かがこれを行う方法について正しい方向に私を向けることができますか?セッションがその時点で終了しているため、セッション終了イベントは機能していないようですので、比較するものはありません。

4

3 に答える 3

1

ログインページを編集できる場合は、ログインが成功した後、Cookiegroup1またはgroup2に保存してもらいます。ログインページが読み込まれたら、グループCookieが存在するかどうかを確認します。存在する場合は、適切なログインURLにリダイレクトできます。

于 2012-08-27T01:52:24.263 に答える
0

しかし、あなたは SessionID を持っています。データベースまたは他のストアで、SessionID をグループに関連付けます。

HttpSessionState.SessionID プロパティ

于 2012-08-27T01:22:30.153 に答える
0

私はあなたがこれを行うことができるとは思わない.

あなたが述べたように、Session_End イベント (おそらく、このイベントが発生するために InProc セッションを使用している) では、ユーザーがどのグループに属していたかを把握するためのセッションはありません。セッション変数を取得できたとしても、HttpContext はありません。 Httpリクエストなしでサーバー上で発生するため、Session_Endイベントではリダイレクトできません。

このイベントは、フォーム認証がログイン画面にリダイレクトされる時点で画面に座っているサイトで発生するか、ユーザーがブラウザーを閉じてからしばらく後に発生する可能性があります。

編集 - 詳細情報が必要

アプリケーションに InProc セッションとフォーム認証を使用していますか?

その場合、考えられる解決策の 1 つは、FormsAuthentication が要求のセッション/認証 Cookie の有効期限が切れてサインインにリダイレクトされたことを認識する前に実行できる HttpModule を作成することです。

Blamが言ったように-情報を別のデータストアに保存する場合-HttpModuleからこれを取得し、そこからカスタムリダイレクトを行うことができます。

HttpModule はリクエストごとに実行されるため、Db 呼び出しなどはパフォーマンスの低下につながる可能性があることに注意してください。

于 2012-08-26T23:43:52.520 に答える