Php Symfony 2';您的会话已超时,或者您已禁用Cookie;
我正在尝试使用Symfony 2安全组件,但IE9有问题。它可以在任何其他浏览器中工作,我觉得这很奇怪。Symfony版本2.0.16 控制器就像“在书中”。我有一个用于登录表单的自定义模板文件,使用文档中的模板文件没有帮助。还创建了自定义路由路径,但在seciurity配置文件中指定了它们。这是安全配置文件,我在那里做了一些更改,但我认为一切正常Php Symfony 2';您的会话已超时,或者您已禁用Cookie;,php,symfony,Php,Symfony,我正在尝试使用Symfony 2安全组件,但IE9有问题。它可以在任何其他浏览器中工作,我觉得这很奇怪。Symfony版本2.0.16 控制器就像“在书中”。我有一个用于登录表单的自定义模板文件,使用文档中的模板文件没有帮助。还创建了自定义路由路径,但在seciurity配置文件中指定了它们。这是安全配置文件,我在那里做了一些更改,但我认为一切正常 security: encoders: Acme\MyBundle\Entity\User: alg
security:
encoders:
Acme\MyBundle\Entity\User:
algorithm: sha1
encode_as_base64: true
iterations: 5
role_hierarchy:
ROLE_CLIENT: ROLE_USER
ROLE_MANAGER: ROLE_USER
ROLE_ADMIN: [ROLE_USER, ROLE_MANAGER, ROLE_ALLOWED_TO_SWITCH]
providers:
main:
entity: { class: Acme\MyBundle\Entity\User, property: email }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
dev_custom:
pattern: ^/createUser
security: false
login:
pattern: ^/(login-custom|remind-pass)$
security: false
secured_area:
pattern: ^/
form_login:
login_path: /login-custom
check_path: /login-check-custom
logout:
path: /logout-custom
target: /
access_control:
- { path: ^/, roles: ROLE_USER }
在IE9中提交表单后,我只是被重定向回表单,而没有验证数据。在日志文件中,我发现:
[2012-08-14 02:51:00]security.INFO:身份验证请求失败:您的会话已超时,或者您已禁用Cookie。[] []
[2012-08-14 02:51:00]security.DEBUG:重定向到/登录[]
当然,我启用了cookies
在ie控制台中有一个警告“HTML1113进入怪癖模式”。
我做错了什么?我在这里找到了答案:
简而言之:当子域包含“UnderCore”时,ie会自动删除cookies。我认为我错误地配置了安全组件,或者模板或标题出现了问题,但事实并非如此。以下是我在一个项目中设置的配置,该配置在本地环境中的Chrome/Firefox/Safari中运行良好,但在Internet Explorer中运行不好 我可以用fiddler看到Internet Explorer没有在浏览器中保留会话cookie 在生产环境中,一切都很好 我意识到删除或设置为0的值: 饼干寿命:86400#一天,饼干寿命 gc#U最大生命周期:1800#30分钟,会话生命周期 允许登录,所以我为开发环境设置了这个配置 我的config.yml中有以下配置
framework:
session:
handler_id: session.handler.pdo
name: sessid
**cookie_lifetime: 86400 # One day, cookie lifetime
gc_maxlifetime: 1800 # 30 minutes, session lifetime**
lifetime: 84600
gc_probability: 5
gc_divisor: 100
其中设置了handler_id来管理mysql表中的会话。my_db_选项:#这是一个会话存储表(有关详细信息,请参阅symfony2文档)
服务.yml
session.handler.pdo:
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\LegacyPdoSessionHandler #PdoSessionHandler (prev to versión 2.6.2)
arguments: ["@session.database", "%pdo.db_options%"]
希望这对您的symfony设置有所帮助或提供线索。您的应用程序设置是什么?你使用负载平衡、清漆等东西吗?没有。标准版的所有内容都是开箱即用的。刚刚创建了几个控制器/视图/实体。@Smauel-我给自己的答案并标记为正确,确实是正确的。
session.handler.pdo:
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\LegacyPdoSessionHandler #PdoSessionHandler (prev to versión 2.6.2)
arguments: ["@session.database", "%pdo.db_options%"]