2013-02-22 34 views
7

Tôi đang sử dụng một trang web dùng chung từ Windows Azure. Tôi muốn mã hóa các phần của web.config của mình, tuy nhiên, tôi nhận được lỗi này:Mã hóa Web.config Windows Azure

Không thể giải mã bằng cách sử dụng nhà cung cấp 'RsaProtectedConfigurationProvider'. Thông báo lỗi từ nhà cung cấp: Vùng chứa khóa RSA không thể mở được.

Tôi có một trang trong trang web của tôi sẽ mã hóa tệp đó và sau đó một vài giờ tôi nhận được lỗi này. Tôi có cần phải gửi chìa khóa máy của mình qua Azure hoặc họ có khóa mà tôi có thể sử dụng không?

Để mã hóa tập tin cấu hình của tôi, tôi sử dụng mã này:

/// <summary> 
    /// About view for the website. 
    /// </summary> 
    /// <returns>Action Result.</returns> 
    public ActionResult About() 
    { 
     Configuration objConfig = 
      WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath); 
     AppSettingsSection objAppsettings = 
      (AppSettingsSection)objConfig.GetSection("appSettings"); 
     if (!objAppsettings.SectionInformation.IsProtected) 
     { 
      objAppsettings.SectionInformation.ProtectSection(
          "RsaProtectedConfigurationProvider"); 
      objAppsettings.SectionInformation.ForceSave = true; 
      objConfig.Save(ConfigurationSaveMode.Modified); 
     } 

     return View(); 
    } 
+0

Tôi không chắc chắn cách bạn mã hóa/giải mã này nhưng khóa máy trong Azure sẽ khác với những gì bạn có tại địa phương. Và tôi tin rằng mỗi trường hợp sẽ có một phím máy khác nhau. Vì vậy, tuy nhiên bạn đang mã hóa này, bạn sẽ phải ghi nhớ điều này. Bạn có thể cung cấp cho chúng tôi thêm thông tin về cách bạn thực hiện mã hóa/giải mã này không? – Jaxidian

+0

Tôi đã thêm một số mã mới, cảm ơn. Tôi nhận thấy rằng mã được mã hóa hoạt động trong vài giờ, sau đó là ngắt. Có vẻ như mã của tôi được gửi đến một cá thể mới, có mã khóa của nó. –

Trả lời

4

Nó có thể không được chính xác những gì bạn đang tìm kiếm, nhưng bạn có thể sử dụng tab Configuration trong bảng điều khiển Azure để ghi đè lên AppSettings khi chạy do đó web.config không lưu trữ bất kỳ dữ liệu nhạy cảm thực tế nào.

http://www.windowsazure.com/en-us/manage/services/web-sites/how-to-configure-websites/#howtochangeconfig

App Settings – Specify name/value pairs that will be loaded by your web application on start up. For .NET sites, these settings will be injected into your .NET configuration AppSettings at runtime, overriding existing settings. For PHP and Node sites these settings will be available as environment variables at runtime.

2

Tôi không chắc chắn nếu điều này là có sẵn tại thời điểm câu hỏi của bạn tuy nhiên một kỹ sư tại Microsoft đã đưa ra một ProtectedConfigurationProvider mới chỉ dành cho Windows Azure. Đây là một liên kết đến nó: https://code.msdn.microsoft.com/Encrypt-Configuration-5a8e8dfe#content.

Họ đã cung cấp các bước chi tiết về chính xác việc cần làm qua here.

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