0

我正在尝试提供管理员功能,管理员可以在不知道密码的情况下以其他用户身份登录。所有网站内容均受权限控制。我的问题是——

  • 我应该在切换到用户帐户之前注销管理员用户吗?这是否意味着管理员必须重新登录?
  • 如果我需要切换回管理员帐户 - 我该如何解决这个问题,因为“用户”没有管理员权限,但我之前以管理员身份登录?
  • 还有什么我需要记住的吗?

你有什么建议?

4

2 回答 2

3

我不熟悉 CI,但这是一个通用的解决方案:

选择模拟用户时,您:

  • 用户 id存储在会话中作为admin user id
  • 将会话中的用户 ID替换为目标用户 ID(即在成功登录期间执行任何操作)

如果会话中存在管理员用户 ID,请在某处显示“结束模拟”链接。单击该链接时,您:

  • 将会话中的用户 id替换为admin 用户 id
  • 从会话中删除管理员用户 ID 。
于 2012-06-15T09:10:47.817 回答
2
  1. 不要破坏管理会话

  2. 检查是否设置了管理会话

    if(isset($_SESSION['admin']))
    {
          //authenticate the user without checking the password,only check the uname 
    }
    else
    {
        //authenticate the user by checking both username and password
    } 
    
  3. 请记住为用户和管理员保留两个单独的会话。

我希望那会做

于 2012-06-15T11:39:37.713 回答