Dotnetnuke 是否有一种简单的方法使DNN站点的所有页面仅可供注册用户查看?

Dotnetnuke 是否有一种简单的方法使DNN站点的所有页面仅可供注册用户查看?,dotnetnuke,Dotnetnuke,我有一个DNN网站,我现在想改变,以便用户必须登录beofre,他们可以查看任何内容。我可以进入每个页面更改权限,但我正在寻找一种更快的方法-即使这意味着进入数据库。如果您愿意,您可以使用IIS授权来完成,但它不提供“注册” 最快的方法是针对TabPermission表编写更新语句。您很可能会将所有的-2或-1(取决于DNN版本)值更改为类似于注册用户的值 请谨慎,备份数据库,并在实际投入生产之前对其进行测试。我再强调也不过分 您还需要查看ModulePermissions表。这将从门户上的所有

我有一个DNN网站,我现在想改变,以便用户必须登录beofre,他们可以查看任何内容。我可以进入每个页面更改权限,但我正在寻找一种更快的方法-即使这意味着进入数据库。

如果您愿意,您可以使用IIS授权来完成,但它不提供“注册”


最快的方法是针对TabPermission表编写更新语句。您很可能会将所有的-2或-1(取决于DNN版本)值更改为类似于注册用户的值

请谨慎,备份数据库,并在实际投入生产之前对其进行测试。我再强调也不过分


您还需要查看ModulePermissions表。

这将从门户上的所有页面中删除所有“未经授权的用户”权限:

DELETE
FROM TabPermission
WHERE RoleID = -3 -- Unauthorized Users
AND TabID IN (
    SELECT TabID
    FROM Tabs
    WHERE PortalID = YOUR_PORTALID_HERE
)
然后将所有“所有用户”权限替换为“已注册用户”:

运行此操作后,转到主机->主机设置,并在性能部分下点击“清除缓存”

您可以对ModulePermission表运行类似的语句,但如果要锁定所有页面,则不必这样做,因为如果他们无法查看任何页面,他们将无法查看任何模块


如果以上任何情况破坏了您的数据库、伤害了您的宠物等,则不承担任何责任。请确保在运行脚本之前备份您的数据库

最快的非技术性方法是转到门户上的父页面,更改权限以适合您,然后将这些权限复制到子页面。如果有大量父页面,请转到“管理>页面”,并将所有父页面分组到一个父页面下。。。更改父权限并复制到所有子页面,然后恢复页面层次结构。

DotNetNuke有自己的注册和权限系统。兰斯:是的,很明显,但你会注意到他不是这么要求的。
UPDATE TabPermission
SET RoleID = -2 -- Registered Users
WHERE RoleID = -1 -- All Users
AND TabID IN (
    SELECT TabID
    FROM Tabs
    WHERE PortalID = YOUR_PORTALID_HERE
)