2014-10-15 3 views
-2

Я разрабатываю настольное приложение. Я использую пользователей домена Windows для входа в приложение. У меня есть форма входа в систему с Запомнить меня check-box.Определите, что пароль был введен пользователем или заполняется автоматически?

Когда пользователь вводит свое имя пользователя и , если он уже зарегистрировался, пароль заполняется автоматически. Если пользователь не выполнил вход в систему до или изменил свой пароль, ему необходимо заполнить поле для пароля самостоятельно.

Когда приложение заполняет поле для пароля автоматически, количество звезд в поле пароля равно фактическому количеству паролей, и если длина пароля недостаточна, это позволяет легко угадать фактический пароль.

Я знаю, что я могу заполнить поле с фальшивыми символами, но когда я хочу проверить пароль, я не знал, что символы, которые находятся в поле пароля, являются поддельными или набираются пользователем.

Что такое Проще всего Способ предотвращения этой проблемы?

+0

Ваш предлагая * подсчет звезд * позволяет легко угадать фактический пароль? При выборе пароля вы можете использовать какой-либо индикатор * пароля *, это заставит их использовать надежный пароль. – christiandev

+3

*********** - каков мой пароль? – Reniuz

+0

Обычный способ, я думаю, должен шифровать пароль, и именно так вы получите больше звезд. – Reniuz

ответ

2
string password = //take it from dataBase or the source where you save it. 
string addStars = "******"; 
InitialPassowrd = true; 
PasswordTxt.Text = password + addStars; 

После этого, когда вы принимаете PasswordTxt.Text для входа в систему:

string password = PasswordTxt.Text; 
string formatPass = password.Substring(0, password.Length - addStars.Length); 

Это самый простой способ, который я могу думать.

EDIT:

Для случая, когда пользователь изменит свой пароль и как проверить его:

Создать одно свойство InitialPassowrd или что-то подобное, false по умолчанию. Если у пользователя есть пароль для сохранения, вы установите для этого свойства значение true и добавьте звезды. После этого вы добавляете обработчик событий на OnTextChanged="PasswordTxt_TextChanged" в PasswordTxt.

код позади:

protected void PasswordTxt_TextChanged(object sender, EventArgs e) 
{ 
    InitialPassword = false; 
} 

В конце концов, когда вы делаете регистрацию:

string password = ""; 
if(InitialPassword) 
{ 
    password = PasswordTxt.Text; 
    password = password.Substring(0, password.Length - addStars.Length); 
} 
else 
{ 
    password = PasswordTxt.Text; 
} 
+0

Пользователь также может ввести свой пароль. Откуда мне это знать? –

+0

@ AliSepehri.Kh здесь проверите его. – mybirthname

+0

Да, это мой ответ, я не знаю причины отрицательного ответа на мой вопрос или некоторых шуток в комментариях. спасибо mybrithname –

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