3

DotNetNuke 7より前は、次の方法を使用して、ユーザーが属するロールのリストを取得することができました。

DotNetNuke.Security.Roles.RoleController rc = new DotNetNuke.Security.Roles.RoleController();

foreach (Entities.Users.UserRoleInfo roleInfo in rc.GetUserRoles(portalID, userID))
{
    string roleName = roleInfo.RoleName;
}

ただし、DNN7以降、このGetUserRoles関数は非推奨になりました。

この機能に代わるものは何ですか?

4

2 に答える 2

7

これに関する情報はどこにも見つからなかったので、APIを参照して、次のことに気づきました。

int portalID = PortalController.GetCurrentPortalSettings().PortalId;
DotNetNuke.Security.Roles.RoleController rc = new DotNetNuke.Security.Roles.RoleController();
Entities.Users.UserInfo info = DotNetNuke.Entities.Users.UserController.GetUserById(portalID, userID);

foreach (string roleName in info.Roles)
{
    Security.Roles.RoleInfo role = rc.GetRoleByName(portalID, roleName);
    Entities.Users.UserRoleInfo roleInfo = rc.GetUserRole(portalID, userID, role.RoleID);
}

これは、上記のコードの代わりに機能し、UserRoleInfoオブジェクトを取得します-ラウンドアバウトの方法で!

于 2013-03-13T15:09:52.713 に答える
1

UserInfoオブジェクトにデータを入力すると、ユーザーが所属するすべてのロールを一覧表示するRoles配列があります。

于 2013-03-17T16:00:22.823 に答える