Tôi có một phương pháp điều khiển gọi là Edit
trong đó người dùng có thể chỉnh sửa dữ liệu mà họ đã tạo ra như vậy ...ASP.NET MVC thuộc tính để chỉ cho phép người dùng chỉnh sửa/nội dung của riêng mình
public ActionResult Edit(int id)
{
Submission submission = unit.SubmissionRepository.GetByID(id);
User user = unit.UserRepository.GetByUsername(User.Identity.Name);
//Make sure the submission belongs to the user
if (submission.UserID != user.UserID)
{
throw new SecurityException("Unauthorized access!");
}
//Carry out method
}
phương pháp này hoạt động tốt tuy nhiên nó là một chút lộn xộn để đặt trong mọi phương pháp điều khiển chỉnh sửa. Mỗi bảng luôn có một UserID
vì vậy tôi đã tự hỏi nếu có một cách dễ dàng hơn để tự động hóa điều này thông qua một thuộc tính [Authorize]
hoặc một số cơ chế khác để làm cho mã sạch hơn.
Cảm ơn bạn! Tôi sẽ làm điều này chung chung hơn. Giống như việc đệ trình thực hiện một giao diện được gọi là IUserOwnable có một UserID. Và sau đó vượt qua trong kho lưu trữ vào Thuộc tính nơi nó tìm nạp IUserOwnable và so sánh UserID đó của người dùng với UserID của IUserOwnable –
Chắc chắn, điều này có thể được thực hiện như bạn muốn cho phù hợp với yêu cầu cụ thể của bạn. –
Cách tiếp cận tốt đẹp. Tôi đã nhảy mà bây giờ nó sẽ có một thuộc tính được xây dựng trong đó –