Tôi muốn sử dụng HTTPS trong ứng dụng web ASP.NET của mình, nhưng chỉ cho trang Login.aspx.Cách sử dụng HTTPS trong ứng dụng ASP.Net
Làm cách nào để thực hiện điều này?
Tôi muốn sử dụng HTTPS trong ứng dụng web ASP.NET của mình, nhưng chỉ cho trang Login.aspx.Cách sử dụng HTTPS trong ứng dụng ASP.Net
Làm cách nào để thực hiện điều này?
Bạn có thể bật HTTPS trong cấu hình IIS của mình, nhưng sẽ không "an toàn" trừ khi bạn có Chứng chỉ SSL và cắm nó vào IIS. Đảm bảo bạn đã mở cổng 443.
Bạn có thể xuất bản chứng chỉ của riêng mình hoặc bạn có thể mua một chứng chỉ. Thông báo trước là mua một, tùy thuộc vào công ty, có nghĩa là nó đã được lưu trữ trong kho chứng chỉ cho hầu hết các trình duyệt. Tự xuất bản của bạn sẽ không được và người dùng của bạn sẽ phải thực hiện thêm bước cài đặt cert của bạn.
Bạn không nói những gì phiên bản của IIS bạn đang sử dụng, nhưng here are some detailed instructions for IIS 6
Bạn có thể mua Certs tương đối rẻ hoặc bạn có thể đi với các bé trai lớn (verisign) và nhận được một giấy chứng nhận xác nhận mở rộng mà biến của bạn thanh địa chỉ trong IE, màu xanh lá cây. Nó cũng là một quá trình xác nhận hơi nghiêm ngặt và cần có thời gian.
Nếu bạn biết tất cả người dùng sẽ truy cập trang web của bạn, không có vấn đề gì khi cài đặt trang web của riêng bạn. Tuy nhiên, đối với một trang web mở với người dùng ẩn danh (mà bạn không biết), có lẽ tốt nhất là nên mua một trang web đã có trong hầu hết các trình duyệt, cửa hàng chứng chỉ chính.
Bạn có thể bật SSL qua IIS và chỉ yêu cầu nó cho trang login.aspx của bạn chứ không phải cho phần còn lại.
Sau khi bạn cài đặt/cài đặt SSL, bạn muốn thực hiện một số loại chuyển hướng trên trang đăng nhập vào https: //. Sau đó, bất kỳ trang nào mà người dùng được gửi đến sau khi xác thực, nó chỉ có thể là http: //.
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
If Request.IsSecureConnection = False And _
Not Request.Url.Host.Contains("localhost") Then
Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"))
End If
End Sub
Việc này có thể dễ triển khai trên trang chính hoặc tất cả các trang bạn yêu cầu https. Bằng cách kiểm tra "localhost", bạn sẽ tránh gặp lỗi trong môi trường thử nghiệm của mình (Trừ khi máy chủ thử nghiệm của bạn có tên khác hơn là kiểm tra: "mytestservername").
Đầu tiên có được hoặc tạo chứng chỉ
Lấy mô-đun SecureWebPageModule từ http://www.codeproject.com/Articles/7206/Switching-Between-HTTP-and-HTTPS-Automatically-Ver. Bạn có thể tìm thấy hướng dẫn thiết lập trong bài viết.
Thêm secureWebPages thẻ để web.config
<configuration>
...
<secureWebPages enabled="true">
...
</secureWebPages>
...
<system.web>
...
</system.web>
</configuration>
Thêm tập tin và thư mục được sử dụng cho giao thức https:
<secureWebPages enabled="true">
<file path="Login.aspx" />
<file path="Admin/Calendar.aspx" ignore="True" />
<file path="Members/Users.aspx" />
<directory path="Admin" />
<directory path="Members/Secure" />
</secureWebPages>
Hope this helps!
Dự án SecureWebPageModule đã được đổi tên thành "SecuritySwitch" và có thể được tìm thấy tại [http://code.google.com/p/securityswitch/](http://code.google.com/p/securityswitch/) –
từ chối trách nhiệm - Tôi đã tham gia vào sự phát triển của dự án này
tôi sẽ khuyên bạn nên sử dụng http://nuget.org/packages/SecurePages/ Nó cung cấp cho bạn khả năng để bảo đảm các trang cụ thể hoặc sử dụng Regex để xác định các trận đấu. Nó cũng sẽ buộc tất cả các trang không phù hợp với Regex hoặc được chỉ định trực tiếp trở lại HTTP.
Bạn có thể cài đặt nó qua NuGet: Install-Package SecurePages
Documents đang ở đây: https://github.com/webadvanced/Secure-Page-manager-for-asp.net#secure-pages
đơn giản Cách sử dụng:
SecurePagesConfiguration.Urls.AddUrl("/cart");
hoặc
SecurePagesConfiguration.Urls.AddRegex(@"(.*)account", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);
Cảm ơn để đăng câu trả lời của bạn! Vui lòng đảm bảo đọc kỹ [FAQ on Self-Promotion] (http://stackoverflow.com/faq#promotion). Cũng lưu ý rằng nó là * bắt buộc * mà bạn đăng tuyên bố từ chối trách nhiệm mỗi khi bạn liên kết đến trang web/sản phẩm của riêng bạn. –
tôi không biết làm thế nào để chuyển hướng trang đăng nhập bằng HTTPS: // đó là vấn đề của tôi. cảm ơn –
Thêm mã Guiness vào trang chứa điều khiển đăng nhập của bạn. Tôi có thể thực sự di chuyển nó lên đầu page_load, hoặc vào OnInit, vì điều đó tiết kiệm xử lý mọi thứ khác, nhưng điều này sẽ làm việc độc đáo. –