Я считаю, что это невозможно, но кто-то из моих знакомых настаивал на том, что это работает. Я даже не знаю, какие параметры попробовать, и нигде не нашел этого документированного.
Я попытался http://myserver.com/~user=username&password=mypassword но это не работает.
Можете ли вы подтвердить, что на самом деле невозможно передать пользователя / передать через параметры HTTP (GET или POST)?
Действительно, невозможно передать имя пользователя и пароль через параметры запроса в стандартной HTTP-аутентификации. Вместо этого вы используете специальный формат URL, например: http://username:password@example.com/
- это отправляет учетные данные в стандартном HTTP-заголовке «Авторизация».
Возможно, тот, с кем вы разговаривали, думал о настраиваемом модуле или коде, который просматривал параметры запроса и проверял учетные данные. Это не стандартная HTTP-аутентификация, это специфическая вещь для приложения.
http: // имя пользователя: пароль@example.com будет работать для FireFox, Chrome, Safari, НО не для IE.
Не рекомендуется передавать параметры базовой аутентификации в URL
Для этого есть поле заголовка авторизации, проверьте его здесь: список заголовков http
Как пользоваться, написано здесь: Базовая аутентификация доступа
Там вы также можете прочитать, что, хотя он по-прежнему поддерживается некоторыми браузерами, предлагаемое решение добавления учетных данных базовой авторизации в URL-адрес не рекомендуется.
Читайте также глава 4.1 в RFC 2617 - HTTP-аутентификация для получения дополнительных сведений о том, почему НЕ использовать обычную проверку подлинности.
Передача параметров аутентификации в строке запроса
При использовании OAuth или других служб аутентификации вы также можете часто отправлять свой токен доступа в строке запроса, а не в заголовке авторизации, например:
GET https://www.example.com/api/v1/users/1?access_token=1234567890abcdefghijklmnopqrstuvwxyzABCD
В вашем примере URL-адрес http://myserver.com/ Было бы:
http: // имя пользователя: password@example.com/myserver.com/
По состоянию на 19.12.2019 я протестировал это, и он работает для Chrome Firefox Safari
Но не для IE, который больше не поддерживает базовую аутентификацию. Я реализовал это с помощью SSRS 2017, который скрывает имя пользователя и пароль. Я бы порекомендовал вам проверить это в браузере инкогнито. Протестируйте с паролем и без него в разных браузерах в режиме инкогнито. Тот, у кого нет пароля, должен спросить у вас пароль.
Можно (очевидно) отправить любую строку в параметрах GET, хотя не рекомендуется отправлять логин и пароль, так как это может сделать его очень заметным, особенно если это не в запросе AJAX.
Однако вам нужно будет затем закодировать страницу сервера, чтобы извлечь логин и пароль, а затем проверить и использовать их любым способом.