Частичное использование SSL сайта asp.net контроль входа в систему

StackOverflow https://stackoverflow.com/questions/96164

  •  01-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

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

Другие советы

Я смог добиться этого, добавив событие 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;
                }

        }

`

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top