查询以获取 DNN 中的用户角色

Query to get user roles in DNN

我需要查询以查看用户在 DotNetNuke 中拥有哪些角色。 我找到了这个查询,但它给出了 RoleID 而不是名称。 如果有多个角色关联到一个用户怎么办?

SELECT Users.FirstName, Users.LastName, Users.Email,UserRoles.RoleID
FROM UserRoles 
INNER JOIN Users ON UserRoles.UserID = Users.UserID

如果一个用户有 2 个角色,它将为具有不同 RoleID 的同一用户带来 2 行。 n 行对应 n 个角色。

如果您需要角色名称,您需要在查询中包含 Roles table。

SELECT Users.FirstName, Users.LastName, Users.Email, UserRoles.RoleID, Roles.RoleName
FROM UserRoles 
INNER JOIN Users ON UserRoles.UserID = Users.UserID 
INNER JOIN Roles ON UserRoles.RoleID = Roles.RoleID
WHERE (Roles.PortalID = 0)

您可能还想包含 PortalID 以避免与其他门户重复。但是我建议使用 DNN 核心功能来确定用户角色,使用 RoleController.