5

DNNでセッションが放棄されないという問題が発生しています。しばらく前に5.xにアップグレードし、おそらく古いコントロールを参照しているため、これが4.5.xの問題であったかどうかはわかりません。

モジュールで参照しているログイン/ログオフコントロールは、パスDNN_Web_Root / admin / Skins/login.ascxにあるDotNetNuke.UI.Skins.Controls.Loginです。

そこでは、logoff.aspxにリダイレクトし、LogoffHttpHandlerを経由して、ログオフプロセスを完了するように見えますが、そのプロセスがSession.Abandonが呼び出されているかどうかを確認する場所がわかりません。

誰でも次のように答えることができますか?

  • LogoffでSession.Abandonが呼び出されないDNNに問題はありますか?
  • LogOffプロセスを実際に処理するプロセスは何ですか?
4

3 に答える 3

2

ログオフは通常、Desktopmodules \ Admin \ Authentication\Logoff.ascxによって処理されます。主なアクションは、他のいくつかのCookieといくつかのユーザー固有のキャッシュデータとともに、認証Cookieをクリアすることです。

DotNetNukeは決してSessionを使用せず、ログオフ中にSessionをクリアしません。

于 2011-06-06T16:59:18.213 に答える
0

DanRoweは次のコードで運が良かったようです。

Response.Redirect(Globals.NavigateURL(TTSRoutines.giPunchinPage, "Logoff"), True)

参照

于 2011-06-05T05:09:00.250 に答える
0

あなたが心配している脅威は、誰かがログオフしたがブラウザを閉じず、次のユーザーが座って、セッション変数がまだぶら下がっているためにアクセスしてはいけないものにアクセスできる共有コンピュータ環境のシナリオだと思います20分かそこら?

セッションを使用する必要がある場合、回避策の1つは、単にチェックすることです。

System.Web.HttpContext.Current.User.Identity.IsAuthenticated

以前にログインしたユーザーのセッション変数を利用して、ログインしていないユーザーが心配な場合はどこでも。

そうは言っても、@ ScottSが提案したようにLogoffでSession.Abandon()を呼び出すのが最も簡単な方法かもしれませんが、このオプションはホストされた環境では利用できない場合があります。

于 2016-01-05T20:51:07.323 に答える