Частичный сайт SSL с использованием контроля входа asp.net - PullRequest
5 голосов
/ 18 сентября 2008

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

Раньше это работало, загружая вторую страницу - "loginaction.aspx" - с префиксом https:, затем извлекая имя пользователя и пароль, ища подходящие элементы управления текстовым полем в Request.Form.Keys. Есть ли способ сделать что-то подобное, используя элементы управления входом .net? Я не хочу иметь отдельную страницу входа в систему, но лучше включить этот элемент управления (в пределах вида входа в систему) на каждую страницу сайта.

Ответы [ 3 ]

2 голосов
/ 12 ноября 2008

Вы не сможете просто делать то, о чем говорите, потому что обратная передача (то, что использует элемент управления входом в систему) будет зависеть от безопасности страницы (SSL или не-SSL).

Лучше всего в этом сценарии использовать IFRAME, содержащую страницу HTTPS (SSL), которая просто содержит элемент управления логином. Возможно, вам придется перенаправить на другую страницу после входа в систему, которая позволит вам выйти из рамки.

План Б будет иметь отдельную форму на странице (вне вашей основной ФОРМЫ), в которой свойство ACTION указывает на другую страницу, где вы обрабатываете логин. Вам придется свернуть свой собственный код входа в систему для проверки подлинности форм.

1 голос
/ 23 сентября 2010

Мне удалось это сделать, добавив событие OnClientClick в элемент управления кнопки входа в систему и присвоив ему следующую функцию javascript.
`

function forceSSLSubmit() 
{

                var strAction = document.forms[0].action.toString();

                if (strAction.toLowerCase().indexOf("http:") == 0) {
                    strAction = "https" + strAction.substring(4);

                    document.forms[0].action = strAction;
                }

        }

`

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

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

Единственный способ действительно сделать это - использовать какие-то фреймы. Таким образом, вся ваша страница может быть не-SSL, но фрейм входа должен быть SSL.

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

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