Đề ôn · PRN232

PRN232 Xây dựng ứng dụng back-end đa nền tảng với .NET – Bộ ôn tập cuối kỳ số 2 (49 câu)

49 câu · Cuối kỳ · Spring 2026

49câu trong đề
PRN232môn

Câu hỏi của đề

15/49 câuCòn 34
ATo handle user authentication and authorization.
BTo route incoming HTTP requests to the correct controller action.
CTo serialize response data into a specific format (e.g., JSON, XML) and deserialize request data from a specific format.
DTo log exceptions that occur during request processing.
Lời giải
Trong pipeline Web API ASP.NET Core, một trình định dạng kiểu phương tiện (media type formatter) đóng vai trò quan trọng trong việc xử lý dữ liệu. Trình định dạng kiểu phương tiện có trách nhiệm serialize dữ liệu phản hồi thành một định dạng cụ thể (ví dụ: JSON, XML) và deserialize dữ liệu yêu cầu từ một định dạng cụ thể. Điều này cho phép các ứng dụng Web API giao tiếp với các ứng dụng khách khác nhau, mỗi ứng dụng khách có thể yêu cầu dữ liệu trong một định dạng cụ thể. Ví dụ, một ứng dụng khách có thể yêu cầu dữ liệu JSON, trong khi một ứng dụng khách khác yêu cầu dữ liệu XML. Trình định dạng kiểu phương tiện sẽ đảm bảo rằng dữ liệu được chuyển đổi thành định dạng yêu cầu của ứng dụng khách.
Mở trang câu hỏi này →
AVirtual Machines (VMs)
BDocker
CWebDeploy
DFTP
Lời giải
Để đóng gói một microservice ASP.NET Core thành một container cho việc triển khai, công nghệ được sử dụng phổ biến nhất là Docker. Docker cho phép tạo ra một môi trường ảo hóa (container) độc lập, giúp đảm bảo ứng dụng chạy ổn định và không bị ảnh hưởng bởi môi trường hệ thống. Mỗi container có thể chứa một ứng dụng độc lập, cùng với tất cả các phụ thuộc và cấu hình cần thiết. Điều này giúp dễ dàng triển khai và quản lý các ứng dụng microservice trên nhiều môi trường khác nhau. Ngoài ra, Docker cũng hỗ trợ các tính năng như tự động hóa xây dựng, phân phối và giám sát ứng dụng, giúp tăng hiệu suất và giảm thiểu thời gian triển khai.
Mở trang câu hỏi này →
AUseAuthorization()
BUseAuthentication()
CUseCors()
DUseStaticFiles()
Lời giải
Trong ASP.NET Core, middleware được sử dụng để xác thực và xử lý token JWT là UseAuthentication(). Middleware này cho phép bạn xác thực người dùng bằng cách kiểm tra token JWT được gửi kèm trong yêu cầu HTTP. Nếu token hợp lệ, người dùng sẽ được xác thực và có thể truy cập vào các tài nguyên được bảo vệ. UseAuthentication() cũng cho phép bạn cấu hình các tùy chọn xác thực, chẳng hạn như cách xử lý token hết hạn hoặc bị hỏng.
Mở trang câu hỏi này →
Aelement.action()
B$(selector).action()
CjQuery(action).selector()
Dselect(element).do(action)
Lời giải
Để chọn một phần tử HTML và áp dụng một hành động trong jQuery, bạn cần sử dụng cú pháp cơ bản. Cú pháp này bao gồm việc sử dụng ký hiệu '$' để chỉ định jQuery, sau đó là chọn phần tử bằng cách sử dụng 'selector', và cuối cùng là áp dụng hành động bằng cách sử dụng phương thức 'action'. Ví dụ, nếu bạn muốn chọn phần tử có id là 'myId' và thêm một lớp CSS 'active', bạn sẽ sử dụng cú pháp '$('#myId').addClass('active')'. Cú pháp này cho phép bạn chọn phần tử và áp dụng hành động một cách linh hoạt và hiệu quả.
Mở trang câu hỏi này →
AInclude passwords in URLs
BValidate inputs on the server
CAllow GET to delete data
DReturn detailed stack traces to clients
Lời giải
Một số phương thức bảo mật được khuyến nghị cho RESTful APIs là gì? Để đảm bảo an toàn cho các API RESTful, chúng ta cần tuân thủ một số nguyên tắc bảo mật quan trọng. Trong số các lựa chọn trên, phương thức "Validate inputs on the server" (Xác minh đầu vào trên máy chủ) là một trong những phương thức được khuyến nghị. Điều này có nghĩa là máy chủ phải xác minh và kiểm tra các dữ liệu đầu vào từ khách hàng trước khi xử lý chúng. Điều này giúp ngăn chặn các cuộc tấn công như SQL injection và cross-site scripting (XSS). Ngoài ra, phương thức này cũng giúp bảo vệ dữ liệu nhạy cảm của khách hàng khỏi bị truy cập trái phép. Các phương thức khác như "Include passwords in URLs" (Bao gồm mật khẩu trong URL), "Allow GET to delete data" (Cho phép GET xóa dữ liệu) và "Return detailed stack traces to clients" (Trả lại các thông tin lỗi chi tiết cho khách hàng) đều không được khuyến nghị vì chúng có thể gây ra các rủi ro bảo mật nghiêm trọng.
Mở trang câu hỏi này →
AMicrosoft.AspNetCore.OData
BMicrosoft.EntityFrameworkCore.SqlServer
CMicrosoft.AspNetCore.Mvc.Razor
DMicrosoft.AspNetCore.Authentication.JwtBearer
Lời giải
Để bật hỗ trợ OData trong ASP.NET Core Web API, bạn cần sử dụng gói NuGet Microsoft.AspNetCore.OData. Gói này cung cấp các tính năng cần thiết để tạo và quản lý các nguồn dữ liệu OData. OData là một tiêu chuẩn mở cho việc truy cập và quản lý dữ liệu trên web, cho phép bạn tạo các nguồn dữ liệu có thể được truy cập và sử dụng bởi các ứng dụng khác nhau. Khi sử dụng Microsoft.AspNetCore.OData, bạn có thể tạo các nguồn dữ liệu OData và sử dụng các tính năng như truy vấn dữ liệu, tạo và cập nhật dữ liệu, v.v. Ngoài ra, gói này cũng cung cấp các tính năng bảo mật và quản lý quyền truy cập dữ liệu.
Mở trang câu hỏi này →
7Which of the following is a key REST constraint?4 lựa chọnKhó33% trả lời đúng
AStateless communication
BServer-managed conversational state
CTight coupling between client and server
DProtocol-specific operations only
Lời giải
REST (Representational State of Resource) là một kiến trúc ứng dụng dựa trên các nguyên tắc và hạn chế cụ thể để đảm bảo tính linh hoạt,scalability và dễ dàng bảo trì. Một trong những hạn chế quan trọng của REST là giao tiếp không có trạng thái (Stateless communication). Điều này có nghĩa là mỗi yêu cầu từ client đến server phải chứa tất cả thông tin cần thiết để xử lý yêu cầu đó, mà không cần dựa vào trạng thái trước đó của giao tiếp. Điều này giúp tăng tính linh hoạt và dễ dàng mở rộng hệ thống. Ví dụ, khi client gửi yêu cầu để lấy thông tin về một tài khoản, server không cần lưu trữ trạng thái của giao tiếp trước đó, mà chỉ cần xử lý yêu cầu dựa trên thông tin được gửi kèm theo. Hạn chế này giúp đảm bảo tính nhất quán và dễ dàng bảo trì hệ thống.
Mở trang câu hỏi này →
Đề bài
var builder = new ODataConventionModelBuilder();
builder.EntitySet<Product>("Products");
builder.EntitySet<Category>("Categories");
return builder.GetEdmModel();
AIt creates two entity sets, Products and Categories, and infers their properties and relationships by convention from the C# classes.
BIt defines two complex types that cannot be queried directly.
CIt creates an empty model and waits for the database to provide the schema.
DIt registers two controllers named Products and Categories.
Lời giải
Mã code sử dụng ODataModelBuilder để xây dựng EDM (Entity Data Model). Nó tạo ra hai tập hợp thực thể, Products và Categories, và tự động xác định các thuộc tính và mối quan hệ của chúng dựa trên các lớp C#. Điều này có nghĩa là khi bạn tạo một lớp C# để mô hình hóa một thực thể, ODataModelBuilder sẽ tự động tạo ra các tập hợp thực thể tương ứng và xác định các thuộc tính và mối quan hệ của chúng. Điều này giúp giảm thiểu công việc thủ công khi xây dựng EDM và tạo điều kiện thuận lợi cho việc phát triển ứng dụng dựa trên dữ liệu.
Mở trang câu hỏi này →
A$.get()
B$.post()
C$.ajax()
DAll of the above
Lời giải
Trong jQuery, phương thức thường được sử dụng để gửi yêu cầu AJAX là $.get(), $.post() và $.ajax(). Phương thức $.get() được sử dụng để gửi yêu cầu GET, trong khi $.post() được sử dụng để gửi yêu cầu POST. Phương thức $.ajax() là một phương thức chung hơn, cho phép bạn gửi các loại yêu cầu khác nhau, bao gồm cả GET và POST. Vì vậy, câu trả lời đúng là tất cả các phương thức trên.
Mở trang câu hỏi này →
10Which of the following is a correctly formatted Media Type for JSON?4 lựa chọnTrung bình67% trả lời đúng
Atext/json
Bapplication/json
Cdata/json
Djson/application
Lời giải
Loại định dạng Media Type cho JSON được sử dụng rộng rãi và được khuyến nghị là 'application/json'. Loại này được sử dụng để xác định rằng dữ liệu được gửi hoặc nhận là trong định dạng JSON. Ví dụ, khi gửi yêu cầu HTTP, bạn có thể sử dụng 'Content-Type: application/json' để chỉ định rằng dữ liệu được gửi là trong định dạng JSON. Ngoài ra, khi nhận dữ liệu, bạn có thể sử dụng 'Accept: application/json' để chỉ định rằng bạn muốn nhận dữ liệu trong định dạng JSON. Loại định dạng này được hỗ trợ bởi hầu hết các trình duyệt và ứng dụng web, vì vậy nó là lựa chọn tốt nhất cho việc gửi và nhận dữ liệu JSON.
Mở trang câu hỏi này →
ATightly coupled modules
BIndependent deployment and scalability
CSingle technology stack only
DReduced system complexity
Lời giải
Microservices cung cấp nhiều lợi ích quan trọng, nhưng một trong những lợi ích chính là tính độc lập trong việc triển khai và mở rộng. Với kiến trúc Microservices, mỗi module được thiết kế và triển khai độc lập, cho phép mỗi module được mở rộng và sửa chữa mà không ảnh hưởng đến các module khác. Điều này giúp tăng cường độ linh hoạt và khả năng thích nghi của hệ thống, cũng như giảm thiểu rủi ro khi triển khai các thay đổi. Ngoài ra, tính độc lập trong triển khai và mở rộng cũng giúp giảm thiểu thời gian và chi phí cần thiết để triển khai các thay đổi, vì mỗi module có thể được triển khai và mở rộng độc lập.
Mở trang câu hỏi này →
AEndpoints defined by ABC
BDirect database connections
COnly files
DShared memory
Lời giải
Trong WCF, các dịch vụ và khách hàng giao tiếp thông qua các điểm kết thúc được định nghĩa bởi ABC. Các điểm kết thúc được định nghĩa bởi ABC là các điểm kết thúc được sử dụng để giao tiếp giữa các dịch vụ và khách hàng. Các điểm kết thúc này có thể được định nghĩa bằng cách sử dụng các thuộc tính của dịch vụ, chẳng hạn như phương thức giao tiếp, giao thức và địa chỉ. Các điểm kết thúc được định nghĩa bởi ABC cho phép các dịch vụ và khách hàng giao tiếp với nhau một cách an toàn và đáng tin cậy. Ngoài ra, các điểm kết thúc được định nghĩa bởi ABC cũng cho phép các dịch vụ và khách hàng giao tiếp với nhau qua mạng, cho phép các ứng dụng phân tán được xây dựng.
Mở trang câu hỏi này →
Apublic override Task<HelloReply> SayHello(HelloRequest request)
Bpublic virtual HelloReply SayHello(HelloRequest request, ServerCallContext context)
Cpublic override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
Dpublic Task SayHello(HelloRequest request, HelloReply reply)
Lời giải

Để thực hiện SayHello RPC, bạn phải ghi đè phương thức nào trong lớp dịch vụ C# của mình? Trong khi xây dựng một dịch vụ RPC, bạn cần phải ghi đè phương thức SayHello để thực hiện chức năng này. Phương thức SayHello phải được ghi đè với các thuộc tính sau: - Nó phải là phương thức override (ghi đè) để đảm bảo rằng nó được gọi khi có yêu cầu RPC. - Nó phải có kiểu trả về là Task<HelloReply> để đảm bảo rằng phương thức này trả về một kết quả. - Nó phải có tham số đầu vào là HelloRequest request để nhận yêu cầu từ client. - Nó phải có tham số thứ hai là ServerCallContext context để có thể truy cập vào thông tin về cuộc gọi RPC. Vì vậy, phương thức SayHello phải được ghi đè như sau:

Lời giải
public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
Mở trang câu hỏi này →
15To bind a parameter to a request header, which attribute is used?4 lựa chọnTrung bình50% trả lời đúng
A[FromHeader]
B[FromHead]
C[BindHeader]
D[InHeader]
Lời giải
Để gắn một tham số vào một yêu cầu tiêu đề, bạn cần sử dụng thuộc tính nào?
Mở trang câu hỏi này →
Đánh giá quiz

Người học chấm PRN232 Xây dựng ứng dụng back-end đa nền tảng với .NET – Bộ ôn tập cuối kỳ số 2 (49 câu) ra sao?

Trung bình từ các phiên học hợp lệ.

5.0
1 lượt chấm