dotnetnuke框架中是否存在允许我将其传递给userId的内容,它将返回填充了该userId详细信息的UserInfo对象。
如果不是这样做的正常方法是什么?
答案 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
只是一张纸条。