2017-02-17 26 views
0

Я пытаюсь создать форму для входа, которая отправляет зашифрованный пароль на сервер, при этом устанавливая открытый текст на скрытые поля вне формы.Internet Explorer сохраняет неправильный ввод как пароль

В Chrome/Firefox он запоминает логин/пароль, установленные в скрытых полях, в то время как в IE он запоминает зашифрованный пароль.

Я хотел бы знать, как я могу обойти это.

вот что у меня есть:

<script> 
    function encryptPassword() { 
     var txtUsername= document.getElementById("txtUsername"); 
     var txtPassword= document.getElementById("txtPassword"); 

     document.getElementById('username').value = txtUsername.value; 
     document.getElementById('password').value = txtPassword.value; 

     txtPassword.value = encrypt(md5(txtPassword.value), "<%=pubKey %>"); 
    } 
</script> 

<div style="visibility: hidden"> 
    <input type="text" name="username" id="username" style="width:0;height:0" tabindex="-1" /> 
    <input type="password" name="password" id="password" style="width:0;height:0" tabindex="-1" /> 
</div> 

<form id="form1" runat="server"> 
    <asp:TextBox ID="txtUsername" autofocus="autofocus" required="required" runat="server" /> 
    <asp:TextBox ID="txtPassword" TextMode="Password" required="required" runat="server" /> 
    <asp:Button ID="btnLogin" OnClick="btnOk_Click" OnClientClick="encryptPassword();" runat="server" /> 
</form> 
+0

Нажмите кнопку '<>' редактор фрагментов и вместо вставки ASP, вставьте HTML и JS только в [mcve] – mplungjan

+0

Извините, но редактор фрагментов, похоже, не распознает ASP, поскольку это необходимо для понимания моя проблема. – Lucas

+0

Ваша проблема выглядит как форма/только HTML/JavaScript – mplungjan

ответ

0

Вы храните зашифрованный пароль в txtPassword перед отправкой его на сервер, поэтому I.E хранит его. Вы можете хранить зашифрованный пароль в скрытом поле и извлекать его оттуда во время аутентификации.

Заменить эту линию

txtPassword.value = encrypt(md5(txtPassword.value), "<%=pubKey %>"); 

что-то

hfPassword.value = encrypt(md5(txtPassword.value), "<%=pubKey %>"); 

где hfPassword будет скрытое поле, и вы должны добавить его в форму.

Я буду сохранен как зашифрованный текст. Не сохраняйте значение txtPassword. Вместо этого сохраните hfPassword. txtPassword будет использоваться только для взаимодействия пользователя и ввода функции шифрования.

+0

, но тогда пароль будет отправлен на сервер как открытый текст, но я не планирую покупать https-сертификат. – Lucas

+0

Нет. Я буду сохранен как зашифрованный текст. Не сохраняйте значение txtPassword. Вместо этого сохраните hfPassword. txtPassword будет использоваться только для взаимодействия пользователя и ввода функции шифрования. – Imad

+0

, но если txtPassword находится внутри формы, когда форма отправлена, она также будет отправлена. Но я уже работаю над решением, которое включает настройку 'disabled = 'disabled'' перед отправкой и отключение, если есть какая-либо ошибка – Lucas