Silverstripe 3 允许对控制器操作进行基本身份验证

Silverstripe 3 allow basic auth for controller action

我有一个控制器,它列出了日历项。 权限提供程序已实现并使用默认安全机制。

控制器有一个名为 "ics" 的动作来响应 iCal 流,这也有效。

如何为此日历操作启用基本身份验证? 例如。: https://user:password@example.com/calendar/ics ?

有什么想法吗?

提前致谢, 罗伯特

这样解决的:

public function ics(SS_HTTPRequest $request) {
    if(! Permission::check('ACCESS_CALENDAR', 'any', Member::currentUser()) ) {
        $member = BasicAuth::requireLogin('Calendar');
        if($member instanceof Member) $member->logIn();
    }
    //.... here goes the ical stuff...
}