Использование функции «Запомнить меня» для аутентификации в .NET 2.0 - PullRequest
8 голосов
/ 29 сентября 2008

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

Однако вы не можете писать в текстовое поле, когда оно находится в режиме пароля.

Я видел, как это делалось много раз, так как они это делают?

Заранее спасибо!

Ответы [ 8 ]

8 голосов
/ 29 сентября 2008

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

2 голосов
/ 29 сентября 2008
Page_Load( ...)
 {
    ... process cookie ...
    if (cookie is good) Response.Redirect("content.aspx");
 }

Просто не забудьте закрыть и удалить все действия с базой данных перед перенаправлением.

1 голос
/ 17 октября 2008

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

<input type="text" name="username" value="<%=decryptedUsername%>" />
<input type="password" value="<%=decryptedPassword%>" />

Конечно, это довольно небезопасно, так как вы возвращаете пароль пользователя обратно в виде простого текста (что является большим нет-нет). Но, как вы говорите, ваш клиент не так обеспокоен последствиями для безопасности. Если это так, то SSL может помочь снизить этот риск.

1 голос
/ 01 октября 2008

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

1 голос
/ 29 сентября 2008

Они не хотят, чтобы пользователь автоматически входил в систему, они просто хотят предварительно заполнить поле usernamd и пароль.

Я знаю, что это глупо и то же самое, что держать вас в системе, но это их запрос.

Я упоминал, что это не лучшая практика безопасности, но им все равно.

сайты, такие как myspace, используют его, когда вы заходите на myspace.com, а ваши usernamd и пароль уже заполнено.

0 голосов
/ 30 декабря 2008

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

0 голосов
/ 17 декабря 2008

Это довольно просто, попробуйте использовать:

txtPass.Attributes ["value"] = "123456"; (скорее всего, на странице обработчик события загрузки)

где txtPass - идентификатор текстового поля пароля (в режиме пароля). и пароль, который вы хотите отобразить, - 123456.

0 голосов
/ 29 сентября 2008

Вы можете установить срок действия файла cookie через 2 недели, чтобы пользователь оставался в системе. Так работает аутентификация ASP.NET с постоянной аутентификацией. Не забудьте обновлять срок действия при каждом запросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...