2

我正在尝试在登录期间获取用户的在线状态。我在 ValidateUser 之后检查以下属性,但它总是返回 false。

    objUser.Membership.IsOnLine

只是为了确认,我将以下代码放在我的一个模块中,该模块只能在登录后访问。

    Dim _currentUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo()
    Dim message as String = IIf(_currentUser.Membership.IsOnLine, "Online", "Not Online")
    UI.Skins.Skin.AddModuleMessage(Me, message, Skins.Controls.ModuleMessage.ModuleMessageType.BlueInfo)

当用户登录时,它总是显示“不在线”。我错过了什么吗?请帮忙。

我正在使用 DNN 6.02.05 社区版。

4

2 回答 2

3

在 DotNetNuke 中启用在线用户的重要步骤

“在线用户”模块在后台线程(通过调度程序)上工作,以从用户在线列表中添加和过期用户。计划的作业应该存在于您的安装中,但默认情况下它是禁用的。

要启用计划的作业:-

  1. 以超级用户帐户(例如主机)登录您的门户
  2. 导航到主机 -> 计划
  3. 编辑“DotNetNuke.Entities.Users.PurgeUsersOnline, DOTNETNUKE”作业(单击铅笔)
  4. 勾选“计划启用”</li>
  5. 点击更新
  6. 点击“立即运行”即可当场生效。

现在您已经配置了计划作业,您的用户应该开始处理后台用户。问题是您必须设置一个额外的主机设置才能发生这种情况。

要使用户在线:-

  1. 以超级用户帐户(例如主机)登录您的门户
  2. 导航到主机 -> 主机设置
  3. 展开“其他设置”</li>
  4. 勾选“使用户在线”</li>
  5. 点击更新
于 2012-12-05T09:46:16.630 回答
1

也许是一个愚蠢的问题,但是您是否检查了主机设置中是否打开了用户在线功能->其他设置?

于 2012-12-03T14:07:31.740 回答