Чтение данных сообщений, отправленных в форму ASP.Net

У меня есть рабочая форма входа в приложение asp.net. Стандартные вещи с текстовым полем для имени пользователя и пароля и кнопкой для обработки входа в систему. Работает отлично.

У меня есть новое требование, позволяющее пользователю вводить имя пользователя и пароль с отдельной простой HTML-страницы, которая не является частью моего приложения asp.net. Я планирую добиться этого с помощью стандартной html-формы, ввода, кнопки отправки и т. Д. Действие формы будет URL-адресом моей страницы входа в asp.net, а его методом будет POST.

Что я хочу сделать на странице кода C # за страницей формы входа asp.net, предположительно в событии Page_Load, - это проверить, содержит ли запрос страницы передаваемое значение имени пользователя и пароля. Если это так, то мне нужно чтобы прочитать эти значения и обработать логин, как если бы кто-то нажал кнопку входа на странице asp.net. Если нет, то я буду отображать форму входа как обычно.

Как мне проверить наличие и прочитать значения имени пользователя и пароля в запросе для моей страницы.


person daveywc    schedule 19.02.2009    source источник


Ответы (3)


Прочтите Request.Form NameValueCollection и соответствующим образом обработайте свою логику:

NameValueCollection nvc = Request.Form;
string userName, password;
if (!string.IsNullOrEmpty(nvc["txtUserName"]))
{
  userName = nvc["txtUserName"];
}

if (!string.IsNullOrEmpty(nvc["txtPassword"]))
{
  password = nvc["txtPassword"];
}

//Process login
CheckLogin(userName, password);

... где txtUserName и txtPassword - это имена элементов управления на странице публикации.

person Cerebrus    schedule 19.02.2009
comment
А как насчет байтовых массивов? Может быть, у вас будет такая строка, а затем преобразовать ее в массив байтов, что ли? Я загружаю файл на serve.r - person Fallenreaper; 06.09.2012
comment
Любопытно, зачем перебирать коллекцию namevalue вместо того, чтобы проверять запрос напрямую для каждого имени элемента управления? - person Howiecamp; 17.02.2014
comment
@Howiecamp когда-нибудь находил ответ на этот вопрос? Я тоже заинтригован. - person tfrascaroli; 08.06.2016
comment
ЭТО! Я отлаживал целых 5 часов, пытаясь понять, какого черта я не могу вывести данные из этой формы. - person Callat; 25.11.2017

if (!string.IsNullOrEmpty(Request.Form["username"])) { ... }

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

person John Sheehan    schedule 19.02.2009

person    schedule
comment
Дайте правильную ссылку на ваш ответ, чтобы это было более осуществимо. - person ; 14.12.2016