如何在DNN 5.x中注销工作?

tha*_*mes 5 session dotnetnuke logoff

我们看到的一个问题是会话没有被DNN放弃.我不确定这是否是一个4.5.x问题,因为我们之前升级到5.x并且可能引用了较旧的控件.

我们在模块中引用的登录/注销控件是位于路径DNN_Web_Root/admin/Skins/login.ascx中的DotNetNuke.UI.Skins.Controls.Login

在那里它看起来像是重定向到logoff.aspx然后通过LogoffHttpHandler,然后它去某处完成注销过程但是我找不到该过程在哪里查看是否正在调用Session.Abandon.

有人可以回答以下问题:

  • DNN是否存在Session.Abandon未在Logoff上调用的问题?
  • 实际处理LogOff进程的过程是什么?

Sco*_*ttS 2

注销通常由 Desktopmodules\Admin\Authentication\Logoff.ascx 处理。主要操作是清除身份验证 cookie,以及一些其他 cookie 和一些用户特定的缓存数据。

DotNetNuke 从不将会话用于任何用途,并且在注销期间不会清除会话。

  • DNN 在注销期间不调用 Session.Abandon 是否有原因?可能还有其他模块使用会话,或者这是不正确的?如果不正确,为什么这种做法不正确? (2认同)
  • 无论出于何种原因,DNN 都不会触及会话。如果一个模块想要使用会话,那么它就完全负责处理会话。我建议完全不要使用会话,大多数情况下它会积累与永远不会删除的特定页面相关的数据,并且在需要存储在进程外并可序列化的网络场中,它很快就会变得尴尬。状态几乎总是更好地保存在数据库中。仔细使用 DataCache API 可以确保快速访问该状态。 (2认同)