2009-07-28 14 views
10

Tôi đang sử dụng System.Configuration để mã hóa và bảo vệ một số mật khẩu trong phần cấu hình tùy chỉnh vis: -.ProtectSection với RsaProtectedConfigurationProvider phím nào đi?

static public void SetPassAndProtectSection(string newPassword) 
{ 

    // Get the current configuration file. 
    System.Configuration.Configuration config = 
     ConfigurationManager.OpenExeConfiguration(
     ConfigurationUserLevel.None); 


    // Get the section. 
    MyAppProtectedSection section = 
     (MyAppProtectedSection)config.GetSection(DEFAULT_SECTION_NAME); 

    section.DBPassword = newPassword; 

    // Protect (encrypt)the section. 
    section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider"); 

    // Save the encrypted section. 
    section.SectionInformation.ForceSave = true; 

    config.Save(ConfigurationSaveMode.Full); 
} 

Điều này có vẻ ổn nhưng tôi cần thêm thông tin cho tài liệu của mình.

Khóa được lưu ở đâu?

Khóa là bao lâu?

Michael

Trả lời

10

phím mức người dùng được lưu trữ tại

\ Documents and Cài đặt {username} \ Application Data \ Microsoft \ Crypto \ RSA

phím Máy cấp tại

\ Documents and Setti NGS \ Tất cả Users \ Application Data \ Microsoft \ Crypto \ RSA \ MachineKeys

Yours là chìa khóa người dùng cấp.

+0

Cảm ơn h0b0 Tôi đã kiểm tra và điều đó là chính xác. Tôi hơi ngạc nhiên khi phát hiện ra rằng vị trí khóa cấp máy có quyền truy cập mặc định là 'everyone..read'. Tôi nghĩ rằng tôi sẽ cần phải sử dụng các khóa cấp độ người dùng vì trong trường hợp của tôi, người dùng của khóa là một dịch vụ windows chạy như một tài khoản cụ thể. Cám ơn phản hồi của bạn. –

+0

Lưu ý: vị trí có thể đã thay đổi trên phiên bản sau của cửa sổ. Câu trả lời của tôi là khác. –

0

Tôi đã có một kịch bản nơi tôi cần cấp quyền truy cập tài khoản dịch vụ cục bộ cho khóa RsaProtectedConfigurationProvider trên máy chủ Windows 2012.

Cuối cùng, cấp quyền truy cập trên C: \ ProgramData \ Microsoft \ Crypto \ RSA \ MachineKeys đã thực hiện thủ thuật.

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