Đọc dữ liệu bài đăng được gửi tới Biểu mẫu ASP.Net


109

Tôi có một biểu mẫu đăng nhập đang hoạt động trong một ứng dụng asp.net. Nội dung tiêu chuẩn với tên người dùng và mật khẩu hộp văn bản và một nút để xử lý đăng nhập. Hoạt động tốt.

Tôi có một yêu cầu mới để cho phép người dùng nhập tên người dùng và mật khẩu từ một trang html thuần túy riêng biệt không phải là một phần của ứng dụng asp.net của tôi. Tôi dự định đạt được điều này bằng cách sử dụng html tiêu chuẩn - biểu mẫu, đầu vào, nút gửi, v.v. Hành động biểu mẫu sẽ là URL của trang đăng nhập asp.net của tôi và phương thức của nó sẽ là ĐĂNG.

Những gì tôi muốn làm trong mã C # phía sau trang của biểu mẫu đăng nhập asp.net, có lẽ là trong sự kiện Page_Load, là kiểm tra xem yêu cầu trang có chứa giá trị tên người dùng và mật khẩu đang được chuyển vào hay không. Nếu đúng thì tôi cần để đọc các giá trị đó và xử lý đăng nhập như thể ai đó đã nhấp vào nút đăng nhập trên trang asp.net. Nếu không thì tôi sẽ hiển thị biểu mẫu đăng nhập như bình thường.

Làm cách nào để kiểm tra sự tồn tại của và đọc giá trị tên người dùng và mật khẩu trong yêu cầu cho trang của tôi.

Câu trả lời:


151

Đọc Request.Form NameValueCollection và xử lý logic của bạn cho phù hợp:

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);

... trong đó "txtUserName" và "txtPassword" là Tên của các điều khiển trên trang đăng.


Còn về mảng byte? Bạn có một chuỗi như vậy và sau đó chuyển đổi nó thành một mảng byte, hay cái gì? Tôi đang tải tệp lên serve.r
Fallenreaper

2
Tò mò tại sao lại lặp lại bộ sưu tập tên thay vì kiểm tra yêu cầu trực tiếp cho từng tên điều khiển?
Howiecamp

@Howiecamp đã bao giờ tìm thấy câu trả lời cho câu hỏi đó chưa? Tôi cũng tò mò.
tfrascaroli

ĐIỀU NÀY! Tôi đã gỡ lỗi trong 5 giờ liền để cố gắng tìm ra lý do tại sao tôi không thể lấy dữ liệu ra khỏi biểu mẫu này.
Callat

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

tên người dùng là tên của đầu vào trên trang gửi. Mật khẩu có thể được lấy theo cùng một cách. Nếu nó không rỗng hoặc trống, nó tồn tại, sau đó đăng nhập người dùng (Tôi không nhớ lại các bước chính xác cho Tư cách thành viên ASP.NET, giả sử đó là những gì bạn đang sử dụng).


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

Đưa ra một tham chiếu thích hợp về câu trả lời của bạn để nó khả thi hơn.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.