Сбой проверки пароля ASP.NET 4 только в IE - PullRequest
0 голосов
/ 30 марта 2011

Я использую поставщика членства ASP.NET и использую элемент управления Password Recovery, чтобы сбросить пароль пользователя, если он его забудет. В целом, все работает нормально, но с проверкой, когда дело доходит до одного.

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

OnUserLookupError="PasswordRecovery1_UserLookupError"

в открывающем теге, и если я загружаю страницу, введите какое-нибудь нежелательное имя и нажмите «Отправить», как и ожидалось, во всех браузерах. Фрагмент кода VB делает видимым div ошибки и устанавливает некоторый текст.

Однако, если при первой загрузке страницы я набираю имя duff в поле имени пользователя и нажимаю клавишу ввода для отправки формы, в Internet Explorer (версия 8) событие UserLookupError не запускается. Он прекрасно запускается в Chrome или Firefox, но не в IE. Я знаю, что это не главное в форме, так как я вижу, что форма отправляется.

Если я сначала нажму кнопку «Отправить», то после того, как нажму клавишу «ВВОД», она сработает, это просто первый раз, когда не сработает, и только в IE.

Кроме того, чтобы добавить, что если я установлю точки останова в коде VB, чтобы проверить, отправляется ли страница, я смогу увидеть событие Page_Load, когда нажимаю клавишу ввода, но не суб PasswordRecovery1_UserLookupError.

Кто-нибудь еще видел это? Это похоже на ошибку в IE (на самом деле нет ???), но мне нужно ее зафиксировать.

Любая помощь будет приветствоваться.

1 Ответ

0 голосов
/ 30 марта 2011

ОК, после еще нескольких копаний и испытаний это на самом деле только проблема кнопки по умолчанию.Я не уверен, что происходит, когда нажимается клавиша ввода (только в IE) после того, как текст был введен в поле, так как он перезагружает страницу, но не отправляет ее.На этой странице нет другого элемента управления или функции, который бы возвращался назад или обновлял эту страницу.

Несмотря на то, что кнопка отправки кажется кнопкой по умолчанию, на самом деле это не так.Поэтому здесь ключом является установка свойства defaultbutton веб-формы.Тем не менее, когда кнопка находится внутри элемента управления PasswordRecovery, это другая проблема.

РЕДАКТИРОВАТЬ:

Вот исправление.Установите кнопку по умолчанию на этапе загрузки страницы.

Me.Form.DefaultButton = PasswordRecovery1.UserNameTemplateContainer.FindControl("SubmitButton").UniqueID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...