2010-02-20 26 views
16

Hành động tôi nhắm mục tiêu cần https. Tôi đã có một bộ lọc tại chỗ chuyển hướng đến https nếu một yêu cầu đến qua http, nhưng tôi muốn gửi yêu cầu qua https ngay từ đầu.Làm cách nào để đặt giao thức khi sử dụng RedirectToAction?

EDIT

Có một câu trả lời từ Darin (cập nhật nay đến cái gì khác), nơi ông được hỏi tại sao tôi gọi là hành động đầu tiên này bằng cách http anyway. Anh ấy có một điểm tốt ở đó và tôi vừa cập nhật một vài liên kết. Đây là cách dễ nhất và bảo mật nhất để khắc phục sự cố của tôi.

Khi tôi tìm ra thời gian để đánh giá câu trả lời Cagdas tôi sẽ sử dụng này là câu trả lời đúng, vì tôi đoán thats quan tâm đối với một số người khác (trong đó có tôi ... trong tương lai)

Trả lời

14

Tôi không biết nếu bạn phải sử dụng RedirectToAction nhưng với a và Redirect phương pháp UrlHelper của bộ điều khiển bạn có thể làm điều này:

public ActionResult SomeAction() { 
    UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext); 
    return Redirect(u.Action("actionName", "controllerName", null, "https")); 
} 
+0

Thành thật mà nói tôi không biết sự khác biệt giữa Chuyển hướng và RedirectToAction. Có thể có sự khác biệt khi sử dụng TempData. Tôi phải thử cái này. Trông hoàn hảo cho đến nay. –

+0

@Malcolm Frexner Vâng, sự khác biệt là một trong số chúng ('Redirect') lấy URI làm tham số, trong khi cái còn lại có" một số từ điển giá trị "(trích dẫn mã nguồn). Và cũng có thể, không nên có bất kỳ vấn đề với TempData, vì cả hai đều chuyển hướng cùng một cách cuối cùng. –

+2

Đây là một điều thực sự kỳ lạ phải làm, nhưng nó hoạt động. Chắc chắn rất nhiều người phải lật qua một giỏ hàng an toàn và sau đó lật trở lại vanilla http khi thanh toán hoàn tất. Tôi ngạc nhiên không có tùy chọn với các chức năng RedirectToAction thông thường. –

0

Bạn có thể mất một xem this article minh họa cách bật HTTPS ở cấp định tuyến.

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