DotNetNuke检索给定UserID的UserInfo

时间:2009-08-18 11:47:57

标签: dotnetnuke dotnetnuke-module

dotnetnuke框架中是否存在允许我将其传递给userId的内容,它将返回填充了该userId详细信息的UserInfo对象。

如果不是这样做的正常方法是什么?

6 个答案:

答案 0 :(得分:7)

试试这个(在带有C#的DNN 5.x中)

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

然后稍后使用UserInfo ......

int UserID = _currentUser.UserID

答案 1 :(得分:5)

我使用了bdukes发布的方式进行了一次修改:PortalId可以从PortalSettings获取:

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

答案 2 :(得分:3)

要获取当前用户,从版本7.3开始,以上所有内容均已弃用。现在,您需要通过include_once (__DIR__."/inc/defines.inc.php"); 属性和Instance方法访问用户信息,即:

GetCurrentUserInfo()

因此你可以得到DotNetNuke.Entities.Users.UserController.Instance.GetCurrentUserInfo()

UserId

因此,给定用户ID,您可以获得用户的信息:

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

请注意,UserController.GetUserById(PortalId,your_user_id) 是DNN上下文提供的属性,因此您只需按上述方式键入即可。

我希望这会有所帮助。

答案 3 :(得分:2)

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

如果您只有用户ID且没有门户网站ID,我首先建议您看看是否也可以获得门户网站ID。如果没有,您需要转到数据库以获得所需内容。理想情况下,您将尽可能少地在那里(因为数据库不是保证的API)。因此,如果您只是快速查询以获取用户的门户ID:

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

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

答案 4 :(得分:2)

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

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

答案 5 :(得分:1)

如果您需要获得当前用户,则更简单:

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

只是一张纸条。