【问题标题】:DotNetNuke Retrieving UserInfo for the given UserIDDotNetNuke 检索给定 UserID 的 UserInfo
【发布时间】:2009-08-18 11:47:57
【问题描述】:

dotnetnuke 框架中有什么东西可以让我向它传递一个 userId,它会返回包含该 userId 详细信息的 UserInfo 对象。

如果不是,正常的做法是什么?

【问题讨论】:

    标签: dotnetnuke dotnetnuke-module


    【解决方案1】:

    试试这个(在 DNN 5.x 中使用 C#)

    private UserInfo _currentUser =
                       DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();
    

    以后再使用 UserInfo...

    int UserID = _currentUser.UserID
    

    【讨论】:

      【解决方案2】:

      我使用了bdukes发布的方式,稍作修改:PortalId可以从PortalSettings获取:

      DotNetNuke.Entities.Users.UserInfo user = DotNetNuke.Entities.Users.UserController.GetUser(PortalSettings.PortalId, user_id, true);
      

      【讨论】:

      • 如果您在 DNN 7 上,您可以使用 webapi 拨打电话并获取信息 - 相当简单
      【解决方案3】:

      为了获取当前用户,从 7.3 版开始,以上所有内容均已弃用。现在您需要通过Instance 属性和GetCurrentUserInfo() 方法访问用户信息,即:

      DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo()
      

      因此你可以得到UserId

      DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo().UserID
      

      因此,给定一个用户 ID,您可以像这样获取用户的信息:

      UserController.GetUserById(PortalId,your_user_id)
      

      请注意,PortalId 是 DNN 上下文提供的属性,因此您可以像上面一样简单地键入它。

      我希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        我相信 DotNetNuke.Entities.Users.UserController 有一个方法 (GetUser) 可以做到这一点,如果你也有一个门户 ID。用户可以跨门户共享,因此(显然)有必要知道您为其请求用户信息的门户,然后才能正确填写 UserInfo 对象。

        如果您只有用户 ID 而没有门户 ID,我建议您先看看是否也可以获得门户 ID。如果没有,你需要去数据库获取你需要的东西。理想情况下,您将尽可能少地呆在那里(因为数据库不是有保证的 API)。因此,如果您只是快速查询以获取用户的门户 ID:

        SELECT PortalID From {databaseOwner}{objectQualifier}UserPortals WHERE UserID = @userId
        

        然后您可以使用 UserController.GetUser 来检索您需要的内容。

        【讨论】:

          【解决方案5】:

          不是返回用户ID是什么问题

          Dim nowUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo
          response.write(nowUser)
          

          【讨论】:

          • 其实你会做 'response.write (nowUser.UserID)
          【解决方案6】:

          如果你需要获取当前用户,那就更简单了:

          Dim nowUser As UserInfo = DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo
          

          只是一个注释。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-09-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多