具有密码保护页面的静态发布者

时间:2014-09-17 17:00:10

标签: silverstripe

我已在我的网站上实施了Static Publisher。

我有一个在CMS中设置的页面,只能由某些组查看。

在安装StaticPublisher之前,这很好用 - 当用户访问浏览器中的受保护页面时,他们被重定向到安全/登录,显示了成员登录表单,经过身份验证后,他们就被发送了。

安装了StaticPublisher后,当用户点击受保护的页面时,它们会被重定向到安全/登录,但不会显示任何表单 - 只会通知他们用户登录的名称。

是否可以使用StaticPublisher拥有受密码保护的页面?我是否需要以某种方式配置Static Publisher以允许受密码保护的页面?

1 个答案:

答案 0 :(得分:1)

静态发布商不会根据会员的访问级别(或其他许多内容)改变内容。由于它将页面保存为静态HTML,因此从不为HTTP请求访问SilverStripe后端,而是将原始HTML页面提供给用户。

但是,您可以从静态发布中排除某些页面和页面类型。如果您不需要缓存此特定页面或部分,这可能是您的最佳选择。

来自docs

public function allPagesToCache() {
    $urls = array();
    $pages = SiteTree::get();

    // ignored page types
    $ignored = array('UserDefinedForm');

    foreach($pages as $page) {
        // check to make sure this page is not in the classname
        if(!in_array($page->ClassName, $ignored)) {
            $urls = array_merge($urls, (array)$page->subPagesToCache());
        }
    }

    return $urls;
}

或者,您可以使用htaccess rules to require HTTP Basic Authentication访问某些缓存页面。这将在SilverStripe的身份验证/授权系统之外运行(并且您必须在.htpasswd文件中手动定义用户名和密码)。