2013-05-23 1 views
0

Я знаю, что этот вопрос на первый взгляд поражает объект безопасности, но вы знаете, как иногда могут быть клиенты.Modx, можно ли входить в систему путем передачи сведений в гиперссылке с удаленного URL-адреса?

В принципе, клиент имеет 2 сайта, один из которых построен в modx и один в asp, оба они имеют логин на месте с одним профилем пользователя, который каждый посетитель получает.

Они хотят, чтобы пользователи могли войти на сайт осины, а затем нажмите на ссылку, чтобы посетить сайт MODx и войти в систему, автоматически - Я даже не уверен, что это возможно ...

Я вы пробовали передавать те же переменные, что форма входа в систему для разных страниц, но без каких-либо успехов, я просто возвращаюсь на страницу входа каждый раз.

www.mywebsite.com/index.phpid=87&username=myusername&password=mypassword&returnUrl=%2F&service=login&Login=Login 

Пробовал ли кто-нибудь еще что-нибудь подобное раньше? У меня есть код, который позволит мне что-то делать с php, но со ссылкой на сайт, который строится в asp, о котором я теперь знаю, я немного в тупике.

E2A:

я задал тот же вопрос на форуме MODx и получил это путем ответа:

Я думаю, что лучший способ должен использовать партийную регистрационную службу третьей такое как OpenID , Но это означает изменения на сайте, основанные на asp. Если вы хотите сделать это с помощью параметров URL-адреса, не используйте фрагмент «Login». «Вход» требует ввода для аутентификации пользователя. Создайте собственный фрагмент и получите использование процессора безопасности/входа (я предполагаю, что вы используете Revolution 2.2x). Сниппет может быть что-то вроде этого:

<?php 
$loginContext = $modx->context->get('key'); 
$c = array(
    'login_context' => $loginContext, 
    'username' => $_GET['username'], 
    'password' => $_GET['password'], 
    'returnUrl' => null, 
    'rememberme' => false 
); 
$response = $modx->runProcessor('security/login', $c); 
return true; 
?> 

Сниппет, кажется, работает и возвращает значение 1, но это не вход меня, наверное, потому что я не знаю, что это означает

get usage of the security/login processor 

Где я могу это сделать?

+1

Передача этого в виде незашифрованного текста в GET/POST очень опасна. Вместо этого вы можете расширить регистрацию Modx, чтобы иметь опцию «запомнить меня» и использовать ее. Таким образом, им не нужно входить в систему снова и снова все время. Но многопользовательский логин, как вы говорите, сложно. Это требует времени. – OptimusCrime

+0

Оба сайта на одном сервере? – okyanet

+0

Я знаю, что это опасно, но клиент решил иметь единый логин для ВСЕХ их пользователей, чтобы делиться ими, а на сайте не было значимой или личной информации (ее список, как перечислять для налогоплательщиков хедж-фондов, уклоняющихся от налогов!) До тех пор, пока theyre happy так я. Взгляните на расширение опции помнить меня, по крайней мере, тогда им просто нужно войти в систему один раз. @okaynet, сайты находятся на совершенно разных серверах. – Funk247

ответ

0

Я сделал это до того, где пользователь вошел в систему modx & У меня был небольшой сценарий SSO-скрипта на модем после события аутентификации, который записывал их в сайт moodle ~ или ~ создавал бы параллельного пользователя в moodle, если бы они это делали не существует. Если вы хотите, чтобы они вошли на сайт asp сначала, вам, вероятно, придется сохранить учетные данные пользователей [из формы входа asp] в переменной сеанса, а затем перенаправить их через страницу, которая сделает запрос на отправку в modx site ~, а затем перенаправить их туда, куда бы ни шла страница ASP. IF вам повезло.