2010-06-02 4 views
1

На моем веб-сайте банка есть 2 страницы входа в онлайн-банкинг. На первой странице введите свое имя пользователя. Если я не укажу действительное имя пользователя, я получаю сообщение об ошибке и не попадаю на вторую страницу. На второй странице отображается изображение на основе моего имени пользователя, и я могу ввести свой пароль. Если вручную ввести URL-адрес на страницу внутри сайта после ввода моего имени пользователя, но перед вводом пароля я перенаправляется обратно на первую страницу входа.несколько страниц входа в ASP.NET формы аутентификации

Есть ли хороший способ реализовать это в ASP.NET с помощью проверки подлинности с помощью форм? Я получаю только 1 loginUrl в своем web.config.

Я вполне уверен, что мой банк использует Java.

+1

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

+0

Чтобы уточнить, наша страница входа в систему - это простая страница имени пользователя/пароля, потому что это то, что нравятся пользователям и разработчикам - если бы мы хотели чего-то другого, мы бы сделали что-то другое. Люди, которые платят мне и людям, которые их платят, хотят обсудить их изменение. Любой хороший разработчик, которому нравится платить, должен вооружиться всеми возможными техническими знаниями для всех возможных решений, прежде чем вступать в такую ​​встречу. – Brad

+0

Мне нравится получать деньги! Но я бы поставил себе вопрос об использовании нестандартных логинов и о том, как он запрещает юзабилити. Посмотрите на проблемы, с которыми люди сталкиваются только с OpenID. Не говоря уже о том, что пользователи не читают экраны инструкций, они ожидают поведения certian, когда сталкиваются с проблемой пользователя/пароля. Как я уже сказал, это не идеальное решение для проверки подлинности, но это ваша зарплата. Я просто дал вам свою идею и мысли по этой теме. Вы задали вопрос, я дал вдумчивый ответ. –

ответ

0

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

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

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

Если вы хотите сделать то же самое, вам нужно 2 страницы, , в первом случае вы запрашиваете имя пользователя, затем вы выполняете поиск в своей локальной базе данных, если это действительный пользователь, тогда вы сохраняете это имя пользователя на переменную, которую вы отправляете на вторую страницу, которая является фактическим именем пользователя. На второй странице у вас есть общий модуль входа в систему asp.net, но вы скрываете имя пользователя, и в то же время вы установили его со значением с предыдущей страницы. А потом все зависит от вас.

+0

Можете ли вы предоставить более подробную информацию? Какая страница аутентифицирует пользователя? Какая страница - loginUrl в webconfig? – Brad

0

Эй, я знаю банк на этом. Хорошо, если это тот же банк, есть еще одна страница, которую пользователь должен посетить, если они находятся на компьютере, который никогда не обращался к логину раньше. После ввода имени пользователя они посещают страницу с ответом на вопрос, где вопрос случайный, который они выбрали, когда они впервые подписались или, по крайней мере, когда они придумали эту страницу входа в систему. Затем они посещают страницу пароля.

Вы можете реализовать это самостоятельно, если используете встроенный провайдер AspNetSqlMembershipProvider, который вы можете настроить встроенный элемент управления входами и переопределить метод OnLoggingIn. Затем вы можете делать все, что вам нужно, в этом логине и переместить его на другую страницу. На следующей странице вы можете переопределить другие методы таким же образом: OnAuthenticate и OnLoggedIn, при необходимости используя встроенный элемент управления (но настроенный). Затем вы можете установить страницу входа в свой web.config на свою первую страницу входа. Вы можете увидеть MSDN для других методов.

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

+0

Несколько банков делают что-то подобное. – Brad

+0

Я буду изучать AspNetSqlMembershipProvider, но если я сделаю перенаправление без аутентификации, не перенаправит ли они их обратно в мой loginUrl в web.config? – Brad

+0

Вам нужно будет придумать что-нибудь, чтобы разрешить доступ к страницам второй/третьей авторизации, но только тогда, когда первая/вторая успешно предотвратит доступ только из избранного/закладки. Билет формы auth может быть достаточно хорош для первой страницы, а затем пользовательский токен безопасности + Forms auth для второй/третьей и внутренних страниц. –

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