2015-08-26 11 views
5

Ví dụ: nếu chuỗi truy vấn có 2 tham số được mong đợi, hãy nói. param1 = "abc" & param2 = "def".Làm cách nào để kiểm tra xem thông số 'không xác định' có được cung cấp trong Chuỗi truy vấn của Yêu cầu không?

Tôi biết rằng Request.QuerySring["abc"] sẽ kiểm tra "abc" trong chuỗi truy vấn.

Nhưng có cách nào để xác thực nếu người dùng nhập bất kỳ điều gì khác ngoài param1 hoặc param2?

Cảm ơn.

+0

Tại sao bạn quan tâm? nếu người dùng nhập một giá trị với một số nhận dạng mà bạn không sử dụng trong mã của bạn, thì dù sao thì nó cũng vô nghĩa. –

+8

http://stackoverflow.com/questions/2375372/is-there-a-way-to-get-all-the-querystring-name-value-pairs-into-a-collection – JleruOHeP

Trả lời

2

Có, bạn có thể sử dụng AllKeys:

Request.QueryString.AllKeys

Để có được danh sách các tham số được dùng ngoài 'param1' và 'param2':

var expectedParams = new [] { "param1", "param2" }; 
var additionalParams = Request.QueryString.AllKeys.Where(k => !expectedParams.Contains(k)); 
0

Nếu bạn cố gắng để lấy Request.QuerySring["param1"] bạn sẽ nhận được giá trị abc. Bây giờ nếu người dùng thay đổi KEYS của chuỗi truy vấn, bạn sẽ không thể nhận được nó khi bạn đang truy xuất các giá trị chuỗi truy vấn bằng KEYS. Vì vậy, bạn không cần phải xác thực người dùng đầu vào.

Các vấn đề liên quan