Пример, размещенный в заархивированной записи под названием “Hotspot Javascript Encyption Example”, действительно работал, когда я впервые попробовал его, не внося изменений. Просто ввел своего тестового пользователя “Ex” и пароль — всё было в порядке. Наверное, когда я первый раз попробовал, я слишком много изменил и случайно что-то упустил… Спасибо ADAVIS, который был достаточно любезен, чтобы разместить эту запись в первый раз… Вот фактический тестовый скрипт, который я использовал на своем веб-сервере. Замени “YOURIP” на IP-адрес вашего MT-маршрутизатора. И — это тестовый пользователь, которого я ввел в свой MT, а (не обязательно) — это место, куда пользователь перенаправляется после входа, вместо экрана статуса MT. Там также есть кнопка отправки, которая доказывает, что это работает. Если вы встроите этот код в динамическую веб-страницу, обслуживаемую базой данных, кнопка отправки не понадобится, так как код будет выполняться при действии в приложении.
<script language="JavaScript" src="/md5.js">
</script>
<form name="sendin" action="http://YOURIP/login" method="post">
<input type="hidden" name="user" value="Ex">
<input type="hidden" name="password" value="Ex">
<input type="hidden" name="popup">
<input type="hidden" name="popup-present" value="true">
<input type="hidden" name="domain" value="">
<input type="hidden" name="dst" value="http://www.google.com/">
<input type="submit" name="login" value="Login">
</form>
<script language="JavaScript">
function doLogin() {
if (document.login.popup.value == 'true' || document.login.popup.value == 'false') {
document.sendin.popup.value = document.login.popup.value;
}
else {
document.sendin.popup.value = document.login.popup.checked;
}
document.sendin.user.value = document.login.user.value;
var frmXXX = document.login.elements['domain'];
if (frmXXX) {
document.sendin.domain.value = document.login.domain.value;
}
document.sendin.password.value = hexMD5('\130' + document.login.password.value + '\142\004\003\132\264\003\100\344\226\202\355\325\136\304\070\355');
document.sendin.submit();
}
</script>
Еще раз спасибо ADAVIS за старую запись js-примера…