(Полагаю, OpenID или WS * -Federation не может быть и речи?)
Если учетные данные совпадают, не могли бы вы просто отправить учетные данные в iframe перед отправкой собственной формы входа?
Или, если вы хотите сначала проверить учетные данные, а затем отправить их на свой сервер, установите флажок и верните их обратно клиенту в виде фрагмента JavaScript, который затем выполняет аутентификацию iframe. (Но учтите, что вы отправите учетные данные обратно клиенту как javascript .)
Пример, который может работать на вас:
Скажите, что ваш логин Url http://yourdomain/login, и вам также нужно войти в систему http://thirdparty/login
yourdomain / login хочет две переменные записи "username" и "pwd", тогда как thirdparty / login хочет "uname" и "password".
Попробуйте включить jQuery в свой проект (есть способы сделать это в javascript отдельно, но вам придется проверить, что jQuery делает в фоновом режиме - но я настоятельно рекомендую не изобретать колесо, если у вас нет к).
// this is the jQuery startup function, called once the page is loaded
$(function()
{
// register an event for the form submit
$("form[@action*='login']").submit(function(event){
// get username and pwd from the form
var _user = $("#username").val();
var _password = $("#pwd").val();
// and submit to the second login page
$.post("http://thirdparty/login", { user: _user, password: _password } );
// once the method returns and you don't do return false then the login form will be submitted as usual.
});
});
Здесь может быть одна проблема, заключающаяся в том, что вы публикуете URL-адрес, отличный от сервера, который обслуживал страницу. Это может быть недопустимо, но вы можете обойти это, отправив действие post оригинальной страницы входа на страницу третьей стороны и войдите в свою систему, используя приведенный выше код.
Ссылка:
JQuery Post: http://docs.jquery.com/Ajax/jQuery.post
Отправка формы перехвата JQuery: http://blog.james -carr.org / 2008/01/17 / jquery-binding-submit-on-a-forms-action-attribute /