gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 23:22:20 26 4
gpt4 key购买 nike

我正在为 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

管理员编辑 是我要隐藏的元素的 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

最佳答案

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

检查当前用户以外的用户的权限相当麻烦和脆弱。基本可以调用 PortalSecurity.IsInRoles 并按照 PermissionProvider 的示例进行操作传递 modInfo.ModulePermissions.ToString("EDIT") .但是,"EDIT"这里是权限提供者中定义的一个值,Evoq 使用不同的权限提供者(为了提供更细化的权限),因此不同的环境可能有不同的权限您要检查。

关于.net - 当页面未处于编辑模式时检查用户是否具有模块编辑权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20485870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com