2013-04-22 35 views
5

Tôi đang phát triển một ứng dụng web. Để bảo mật thông tin người dùng, tôi cần kết nối https. Tôi đang phát triển địa phương này vào lúc này. Tôi đã theo các hướng dẫn về: http://weblogs.asp.net/dwahlin/archive/2009/08/25/requiring-ssl-for-asp-net-mvc-controllers.aspxCách sử dụng https trong C#?

Khi tôi xây dựng dự án của tôi tải trang nhưng url là: http: // ...

Trong mã của tôi đã đặt:

[RequiresSSL] 
    public ActionResult Index() 
    { 
     //var model = Adapter.EuserRepository.GetAll(); 

     return View(db.Eusers.ToList()); 
    } 

mã từ trang web:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace extranet.Helpers 
{ 
    public class RequiresSSL: ActionFilterAttribute 
    { 
     public override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      HttpRequestBase req = filterContext.HttpContext.Request; 
      HttpResponseBase res = filterContext.HttpContext.Response; 

      //Check if we're secure or not and if we're on the local box 
      if (!req.IsSecureConnection && !req.IsLocal) 
      { 
       var builder = new UriBuilder(req.Url) 
       { 
        Scheme = Uri.UriSchemeHttps, 
        Port = 443 
       }; 
       res.Redirect(builder.Uri.ToString()); 
      } 
      base.OnActionExecuting(filterContext); 
     } 


    } 
} 

Tôi thiếu url nào không dựa trên https? Đây có phải là vì tôi đang làm việc tại địa phương không?

Cảm ơn trước

Trả lời

3

Bộ lọc của bạn kiểm tra xem yêu cầu có phải là địa phương với tuyên bố này không: && !req.IsLocal. Nếu có, thì nó không chuyển hướng. Nếu bạn xóa câu lệnh đó thì bạn sẽ được yêu cầu truy cập vào hành động qua HTTPS bất kể bạn có ở địa phương hay không.

+0

wow ... làm thế nào tôi không thể thấy rằng * xấu hổ *, khi tôi xóa đoạn mã đó sau đó tôi nhận được 401 - không thể kết nối với máy chủ cục bộ, nhưng liên kết là https ngay bây giờ ... – thomvlau

+0

Bạn đã cài đặt chứng chỉ (kiểm tra) chưa? –

0

khi tôi loại bỏ đoạn mã sau đó tôi nhận được một 401 - không thể làm cho kết nối với localhost máy chủ, nhưng liên kết là https tại

Loại bỏ một phần của mã duy nhất là một phần của giải pháp cho vấn đề của bạn. Quay lại câu hỏi ban đầu của bạn về "cách bạn có thể sử dụng https" thì bạn cần phải enable it using this guide.

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