【问题标题】:Static Publisher with Password Protected Page具有密码保护页面的静态发布者
【发布时间】:2014-09-29 00:20:12
【问题描述】:

我已经在我的网站上实现了静态发布器。

我在 CMS 中设置了一个页面,仅供某些组查看。

在安装 StaticPublisher 之前,这工作正常 - 当用户在浏览器中访问受保护的页面时,他们被重定向到安全/登录,显示成员登录表单,并在验证后发送。

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

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

【问题讨论】:

    标签: silverstripe


    【解决方案1】:

    静态发布者不会根据会员的访问级别(或其他许多内容)改变内容。由于它将页面保存为静态 HTML,SilverStripe 后端永远不会针对 HTTP 请求进行访问,而是将原始 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 文件中手动定义用户名和密码)。

    【讨论】:

    • 谢谢。关于 HTTP 基本身份验证的好建议。
    猜你喜欢
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2011-06-21
    • 2017-02-03
    相关资源
    最近更新 更多