Прочитайте дані публікації, подані у форму ASP.Net


109

У мене є робоча форма для входу в додаток asp.net. Стандартний матеріал з текстовим полем імені користувача та паролем та кнопкою для обробки входу. Добре працює.

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

Що я хочу зробити у коді C # за сторінкою форми входу asp.net, імовірно, у події Page_Load, це перевірити, чи запит на сторінку містить значення імені користувача та пароля, яке передається. Якщо це потрібно, мені це потрібно читати ці значення та обробляти вхід так, ніби хтось натиснув кнопку входу на сторінку asp.net. Якщо ні, то я покажу форму для входу як завжди.

Як перевірити наявність і читання значень імені користувача та пароля у запиті для моєї сторінки.

Відповіді:


151

Прочитайте 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" - це Назви елементів керування на сторінці розміщення.


Що з байтовими масивами? У вас є такий рядок, а потім перетворите його в байтовий масив, чи що? Я завантажую файл на serve.r
Fallenreaper

2
Цікаво, чому перебирати іменне значення колекції, а не перевіряти запит безпосередньо для кожного імені керування?
Howiecamp

@Howiecamp коли-небудь знайшов відповідь на це питання? Я також заінтригований.
tfrascaroli

ЦЕ! Я впроваджував налагодження протягом солідних 5 годин, намагаючись з'ясувати, чому, пекло, я не можу отримати дані з цієї форми.
Каллат

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

ім'я користувача - це вхід на сторінці подання. Пароль можна отримати так само. Якщо його значення не є нулевим або порожнім, воно існує, тоді увійдіть у систему користувача (я не пригадую точних кроків для членства в ASP.NET, припускаючи, що це ви використовуєте).


3
NameValueCollection nvclc = Request.Form;
string   uName= nvclc ["txtUserName"];
string   pswod= nvclc ["txtPassword"];
//try login
CheckLogin(uName, pswod);

Дайте належну інформацію про вашу відповідь, щоб це було більш можливим.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.