【问题标题】:DNN deprecated methods on upgrade升级时不推荐使用 DNN 方法
【发布时间】:2021-01-11 13:45:37
【问题描述】:

我正在尝试将我的旧 DNN 网站升级到 DNN 版本 9.8.0。问题是我安装了一个自定义模块,它使用了我正在使用不推荐使用的方法表解决的不推荐使用的方法,并且我遇到了一个我不太了解如何处理它的问题:

retRole = DotNetNuke.Security.Roles.RoleProvider.Instance().GetRole(module.PortalId, roleid);

错误是:“DotNetNuke.Security.Roles.RoleProvider”不包含“GetRole”的定义,并且找不到接受“DotNetNuke.Security.Roles.RoleProvider”类型的第一个参数的扩展方法“GetRole”(您是否缺少 using 指令或程序集引用?)

在弃用方法表中,对于 public virtual RoleInfo GetRole(int portalId, int roleId) 它说:DotNetNuke 6.2 中已弃用。角色缓存在业务层中

有谁知道这意味着什么以及如何解决这个问题?

【问题讨论】:

    标签: upgrade dotnetnuke


    【解决方案1】:

    我不会使用 RoleProvider,而是使用 RoleController:

    retRole = DotNetNuke.Security.Roles.RoleController.Instance().GetRoleById(module.PortalId, roleid);

    在 DNN9.8 中,RoleProvider 不再有 GetRole 方法。

    【讨论】:

    • 感谢您的帮助。它有效,但我只需要从 Instance() 中删除 ()。所以解决方案是:retRole = DotNetNuke.Security.Roles.RoleController.Instance.GetRoleById(module.PortalId, roleid);
    猜你喜欢
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-29
    • 2020-11-11
    相关资源
    最近更新 更多