是否有一种简单的方法可以让注册用户只能查看DNN网站的所有页面?

时间:2010-01-21 00:13:43

标签: dotnetnuke

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

4 个答案:

答案 0 :(得分:3)

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

DELETE
FROM TabPermission
WHERE RoleID = -3 -- Unauthorized Users
AND TabID IN (
    SELECT TabID
    FROM Tabs
    WHERE PortalID = YOUR_PORTALID_HERE
)

然后用“注册用户”替换所有“所有用户”权限:

UPDATE TabPermission
SET RoleID = -2 -- Registered Users
WHERE RoleID = -1 -- All Users
AND TabID IN (
    SELECT TabID
    FROM Tabs
    WHERE PortalID = YOUR_PORTALID_HERE
)

运行后,转到主机 - >主机设置和性能部分下的“清除缓存”。

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

如果其中任何一个破坏您的数据库,伤害您的宠物等,则不负责任。确保在运行脚本之前备份您的数据库!

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

谨慎使用,备份数据库,然后在生产中进行测试之前对其进行测试。我不能强调这一点。

您还需要查看ModulePermissions表。

答案 3 :(得分:-1)

如果您愿意,您可以使用IIS授权执行此操作,但它不提供“注册”。

http://msdn.microsoft.com/en-us/library/aa292114%28VS.71%29.aspx