Tôi chỉ đang học ASP.NET MVC và gần đây tôi đã tìm thấy thuộc tính [RequireHttps] để tự động chuyển hướng yêu cầu GET để sử dụng SSL, như vậy ...Cách chỉ định một cổng khác với thuộc tính RequireHttps trong MVC3
[RequireHttps] //apply to all actions in controller
public class SomeController
{
[RequireHttps] //apply to this action only
public ActionResult SomeAction()
{
...
}
}
Khi sử dụng IIS Express làm máy chủ phát triển, điều này chuyển hướng thành công yêu cầu từ http://localhost:55945/...
đến https://localhost/...
. Tuy nhiên, trên hệ thống phát triển của tôi, dự án của tôi đang sử dụng HTTPS trên cổng 44300 (được cấu hình tự động bởi Visual Studio 2010), và tôi chưa tìm được cách nào để nói MVC sử dụng số cổng đó trong chuyển hướng, vì vậy thay vào đó, nó được chuyển đến yêu cầu https://localhost:43300/...
. Tôi thực sự mong đợi điều này là tự động, do số cổng SSL được thiết lập tự động bởi Visual Studio, và theo như tôi có thể nói, điều này phải có hiệu lực cho tất cả các nhà phát triển bằng cách sử dụng thuộc tính [RequireHttps] trong MVC3. Trong tìm kiếm của tôi cho một giải pháp, tôi đã nhìn thấy một vài giải pháp "làm việc xung quanh" chắp vá, nhưng không có gì mà dường như chắc chắn "đúng cách" để sửa chữa nó.
Vì vậy, làm những điều "đúng cách", tôi phải thay đổi gì (trong mã nguồn hoặc trong cấu hình dự án) để nói thuộc tính [RequireHttps] trong MVC3 để sử dụng cổng HTTPS mà dự án của tôi được định cấu hình đang sử dụng?
Hoặc cách khác, có cách nào khác hoàn toàn khác và tốt hơn "đúng cách" để thiết lập hỗ trợ SSL trong dự án MVC3, không có vấn đề này?
Tôi nhận được phần đầu tiên của câu trả lời của bạn, mặc dù nó có vẻ giống như một hack, cho một cái gì đó mà không cần phải bị tấn công. Nhưng tôi không hiểu đoạn cuối của bạn. Tôi cần hệ thống phát triển của tôi để hành xử (chặt chẽ như thực tế) theo cùng một cách mà hệ thống người dùng sẽ hành xử. Điều đó có nghĩa là một số trang sẽ sử dụng HTTPS và một số trang sẽ không sử dụng. Điều đó cũng có nghĩa là tôi không thể kiểm soát URL mà người dùng sẽ nhập vào trang web. –
Điều tôi muốn nói là bạn có thể không cần chuyển hướng thực sự để làm việc trên máy tính của bạn, và trong quá trình sản xuất, nó sẽ là cổng HTTPS chuẩn. Đây sẽ là trường hợp nếu toàn bộ trang web chạy dưới HTTPS, vì bạn chỉ có thể khởi động ứng dụng bằng cổng HTTPS phù hợp và ở trong ngữ cảnh HTTPS. Nếu tôi hiểu rõ thì đây không phải là trường hợp, vì vậy bạn cần phải thực hiện chuyển hướng trên máy tính của bạn. Tôi cập nhật câu trả lời và cố gắng để cụm từ tốt hơn những gì tôi có nghĩa là, nhưng nó có thể không có liên quan cho bạn anyway. –