2012-06-01 52 views
28

Tôi vừa cài đặt ASP.Net MVC 4 RC để thay thế ASP.Net MVC 4 beta. Khi cố gắng chạy một ứng dụng hiện có, tôi nhận được thông báo lỗi rằng AntiForgeryToken đã không được chấp nhận. Dưới đây là mã của tôi:AntiForgeryToken không được chấp nhận trong ASP.Net MVC 4 RC

using (Html.BeginForm("", "", FormMethod.Post, new { id = "MonthElectionForm" })) 
{ 
    @Html.AntiForgeryToken("AddEditMonthElection") 
} 

---- CẬP NHẬT ---

ASP.Net MVC 4 RC đã làm cho tài sản Salt lỗi thời cho ValidateAntiForgeryToken thuộc tính và AntiForgeryToken html helper. Vì vậy, bây giờ mã của tôi trông như thế này:

điều khiển:

 [HttpPost] 
     [ValidateAntiForgeryToken] 
     public JsonResult CreateCompany(CompanyDataEntryViewModel modelData) 
     {...} 

dạng:

@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" })) 
{ 
    @Html.AntiForgeryToken() 
... 
} 

Nhìn vào HTML được tạo, AntiForgeryToken vẫn tạo ra một lĩnh vực ẩn và cung cấp một giá trị được mã hóa. Hành động của tôi vẫn hoạt động. Nhưng tôi đã mất khả năng chỉ định một khóa để sử dụng trong quá trình mã hóa. Tôi không chắc quá trình hoạt động như thế nào, nhưng trước khi tôi có thể nói tôi đã đặt giá trị muối trên hành động và trên biểu mẫu. Các giá trị phải khớp để hành động chấp nhận bài đăng. Vì vậy, làm thế nào để bạn thiết lập giá trị muối bây giờ? Tôi nghĩ rằng nó có một cái gì đó để làm với AntiForgeryConfig AdditionalDataProvider nhưng tôi không thể tìm thấy bất cứ điều gì googling về cách sử dụng AntiForgeryConfig AdditionalDataProvider. Hãy giúp tôi.

Cảm ơn

+6

Bạn có nhận được thông báo lỗi chi tiết này không? "Phương pháp này không được chấp nhận. Sử dụng phương thức AntiForgeryToken() để xác định dữ liệu tùy chỉnh được nhúng trong mã thông báo, sử dụng thuộc tính tĩnh AntiForgeryConfig.AdditionalDataProvider." –

+0

Có, tôi đã thấy thông báo lỗi chi tiết đó. Làm thế nào để bạn sử dụng tài sản AntiForgeryConfig.AdditionalDataProvider? Chúng ta có thể không còn sử dụng các thuộc tính trên một hành động như trước đây được không? Không có nhiều hiển thị khi googleing tài sản AntiForgeryConfig.AdditionalDataProvider. –

Trả lời

43

Thiết muối tham số là không cần thiết và không cung cấp bất kỳ sự bảo vệ bổ sung, vì vậy chúng tôi không còn hỗ trợ nó.

Vui lòng xem câu trả lời của tôi theo số How to choose a salt value for ValidateAntiForgeryToken để biết thêm thông tin.

+1

Ahhh, có ý nghĩa bây giờ. Tôi giả định giá trị mà chúng tôi đã sử dụng cho giá trị Salt đã được sử dụng trong quá trình mã hóa. Cảm ơn cho thanh toán bù trừ này lên. –

+1

Vì vậy, bạn sẽ làm gì trong trường hợp bạn có nhiều biểu mẫu đăng nhập (các phương thức khác nhau) trên cùng một trang và mỗi loại đều cần mã thông báo? Tôi đang gặp sự cố khi tôi gặp lỗi với mã thông báo vì một biểu mẫu được bắt đầu, nhưng một biểu mẫu khác được chọn và được gửi. (Giống như đăng nhập người dùng nội bộ so với đăng nhập người dùng bên ngoài.) – Craig

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