我正在尝试控制会话以禁止访问我的网络应用的某些页面。方法很简单,一个布尔会话变量。事情是每个动作都有一个页面,但是,如果用户是否登录,我认为在每个动作中都要求优雅。我怎样才能在MVC架构中优雅地做到这一点?这样看起来很糟糕。我以为有一个父动作重定向到最后一个,呈现页面的动作,是不是?也许我可以在那里进行检查。
public function createAction(Request $request){
$sess = $this->getRequest()->getSession();
if ($sess->get('logged') == true) {
// ---- ACTION CODE GOES HERE ---- //
}
}
答案 0 :(得分:1)
在Symfony2中,如果需要授权的站点部分位于同一路径下,则可以使用安全配置中的access_control部分:
# app/config/security.yml
security:
# ...
access_control:
- { path: ^/secured/area, roles: ROLE_USER }
您可以在book
中找到更多保护应用的方法