页面未处于编辑模式时,检查用户是否具有模块编辑权限

 坤哥小妹 发布于 2023-02-11 19:16

我正在为DNN 7.1+开发一个模块,我需要根据用户是否具有该模块的编辑权限来显示/隐藏模块中的链接.无论页面是否处于编辑模式,我都希望这种情况发生.

目前,我在自定义模块页面加载事件的view.ascx中有以下代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    Try
        ''other code goes here.......
        If IsEditable = True Then
            AdminEdit.Visible = True
        Else
            AdminEdit.Visible = False
        End If
    Catch exc As Exception
        Exceptions.ProcessModuleLoadException(Me, exc)
    End Try

End Sub

AdminEdit是我要隐藏的元素的ID.此代码在页面处于编辑模式时有效,但如果用户具有该模块的编辑权限,我希望此代码始终可见,无论编辑模式如何.

现在,如果页面未处于编辑模式,则IsEditbale返回false.

问题:如何在没有页面处于编辑模式的情况下检查用户权限?

编辑:我也很高兴检查用户对包含该模块的页面的编辑权限

解:

以下是我最后的结果,感谢bdukes:

   Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        Try

            ''display template selector if user has edit rights over module
            If DotNetNuke.Security.Permissions.ModulePermissionController.CanEditModuleContent(Me.ModuleConfiguration) Then
                AdminEdit.Visible = True
            Else
                AdminEdit.Visible = False
            End If
        Catch exc As Exception
            Exceptions.ProcessModuleLoadException(Me, exc)
        End Try

    End Sub

bdukes.. 8

所有这一切IsEditable都告诉您是否处于编辑模式.要检查权限,请使用DotNetNuke.Security.Permissions.ModulePermissionController.CanEditModuleContent(modInfo).

检查当前用户以外的用户的权限是相当混乱和更脆弱的.在基本级别,您可以调用PortalSecurity.IsInRoles并按照示例PermissionProvider进行传递modInfo.ModulePermissions.ToString("EDIT").但是,"EDIT"这是在权限提供程序中定义的值,Evoq使用不同的权限提供程序(为了提供更细化的权限),因此不同的环境可能具有您要检查的不同权限.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有