2013-03-01 3 views
0

У меня есть имя пользователя/пароль на странице входа, которая переходит на страницу участника. В основном, я использовал инструкцию, которая находит количество строк в SQL-запросе, и если это не 1 (правильная комбинация имени пользователя и пароля), то она перенаправляется обратно на страницу входа.В coldfusion: как помнить, что пользователь вошел в систему?

Однако на странице 'member' существуют формы для выполнения различных действий, таких как добавление новых строк в таблицу с использованием SQL или возврат запросов к объединенным таблицам. Эти формы также ссылаются на эту страницу участника, но условия для входа в систему (которая требует переменную имени пользователя и пароля) больше не будут выполняться.

Итак, как я могу заставить сервер запомнить, включен ли пользователь или нет?

ответ

9

В приложении application.cfm или application.cfc вам необходимо включить sessionManagement = true, чтобы вы могли начать отслеживать переменные во всех запросах страниц. Затем, когда пользователь войдет в систему, вы установите переменную типа isAuthenticated = true. Только перенаправление на страницу входа в систему, если isAuthenticated = ложной или неопределенным (вы можете установить по умолчанию с помощью cfparam в onSessionStart из Application.cfm)

Грубый пример, если вы используете ColdFusion 9+ Application.cfc

component { 
    this.name = 'myApplication'; 
    this.SessionManagement = true; 

    public function onSessionStart() { 
     param name='session.isAuthenticated' default=false; 
    } 
} 

checkAuthentication.cfm

<cfscript> 
if (!session.isAuthenticated) { 
    // send to login page 
} 
</cfscript> 

В вашей обработки страницы входа в систему, убедитесь, что вы установили SES sion.isAuthenticated to true, а затем он должен пропустить проверку/запрос для входа. Вы также можете посмотреть встроенные функции аутентификации CFLOGIN.

Надеюсь, что это поможет.

Смежные вопросы