CakePHP Auth + ACL не может войти с IE - PullRequest
0 голосов
/ 14 октября 2011

Как видно из названия, я не могу войти в свое приложение CakePHP с помощью IE. То же имя пользователя и пароль отлично работают с Chrome, Firefox, Opera и Safari ... только не с IE (все версии 7-9). Страница обновляется, как будто ACL и / или Auth не пройдены.

Нет ошибок в $ this-> Session-> flash ('auth') или $ this-> Session-> flash ().

Я в растерянности ...

Вот код:

Контроллер:

function login(){
    $this->layout = 'content';
}

Вид:

echo $this->Html->div('login_area',
    $this->Html->div('login_form', 
        $this->Html->div('error', $this->Session->flash()).
        $this->Html->div('error', $this->Session->flash('auth')).
        $this->Html->div('login_header', 'Member Login').
        '<hr>'.
        $form->create('User', array('action' => 'login')).
            $this->Html->div('login_line', 
                $this->Html->div('left', 'Username: ').
                $this->Html->div('right', $this->Form->input('username', array('div' => false, 'label' => false)))
            ).
            $this->Html->div('login_line', 
                $this->Html->div('left', 'Password: ').
                $this->Html->div('right', $this->Form->input('password', array('div' => false, 'label' => false)))
            ).
            $this->Html->div('login_line', $this->Html->div('login_button', $this->Form->submit('Login'))).
            $this->Html->div('clear').
        $form->end().
        $this->Html->div('', $this->Html->link('Forgot your password?', array('controller' => 'users', 'action' => 'recover_password')), array('style' => 'text-align:center'))
    )
);

AppController:

var $components = array('Acl', 'Auth', 'Session','Filter');
var $helpers = array('Html', 'Form', 'Session');
function beforeFilter(){
    $this->Auth->actionPath = 'controllers/';
    $this->Auth->authorize = 'actions';
    $this->Auth->authError = 'Please login to view this page.';
    $this->Auth->loginError = 'Incorrect username/password combination';
    $this->Auth->logoutRedirect = array('controller' => 'pages', 'action' => 'index');
    $this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'dashboard');
}

1 Ответ

4 голосов
/ 11 ноября 2011

Я нашел решение для этого. Системный администратор настроил сайт subdomain.domain.com ... в поддомене было подчеркивание.

Оказывается, IE не может сохранять сеансы, если в любой части домена есть подчеркивание.

Примечание. В ходе моего тестирования выяснилось, что только IE действует таким образом, все остальные браузеры (Chrome, FireFox, Safari, Opera) в этой ситуации прекрасно сохраняют информацию о сеансе.

...