Vì bạn không có quyền truy cập vào máy chủ, bạn sẽ cần phải chạy lệnh để mã hóa các phần của web.config của bạn thông qua mã. Bạn có thể làm điều này bằng cách tạo một trang web đơn giản và chạy nó trên trang tải hoặc trên một nút bấm. Dưới đây là khối mã bạn sẽ cần phải chạy, chỉ sửa đổi một chút từ nguồn tôi lấy từ Microsoft (http://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.protectsection.aspx). Mặc dù ... mã này đã không thực sự làm việc cho tôi. Không phải là mã không chính xác, nhưng vì tài khoản của tôi không được phép lưu trữ khóa Rsa, kết quả của bạn có thể thay đổi. Nếu điều này không hoạt động thì hãy đọc tiếp cho tùy chọn 2.
' Get the current configuration file.'
Dim config As System.Configuration.Configuration = Web.Configuration.WebConfigurationManager.OpenWebConfiguration(Nothing)
' Get the section.'
Dim section As AppSettingsSection = CType(config.GetSection("appSettings"), AppSettingsSection)
' Protect (encrypt) the section.'
section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider")
' Save the encrypted section.'
section.SectionInformation.ForceSave = True
config.Save(ConfigurationSaveMode.Full)
Tín dụng: Tôi tìm thấy liên kết đó với mã qua Need Encrypted connection string and stmp information in the web.config.
Tùy chọn 2: Vì lý do bảo mật bạn vẫn muốn sử dụng phím máy vì vậy nếu ai đó quản lý để tải xuống tệp web.config của bạn, họ sẽ không thể giải mã cài đặt của bạn. Một cách để làm điều này là mã hóa tất cả các thiết lập của bạn bằng cách sử dụng phím máy bằng tay, và giải mã chúng mỗi khi bạn cần sử dụng chúng, hoặc bạn có thể lưu chúng trong bộ nhớ cache trên mỗi lần khởi động ứng dụng.
Để mã hóa và giải mã một ứng dụng giá trị quan trọng bạn có thể sử dụng mã như thế này:
Dim encryptedString As String = Convert.ToBase64String(ProtectedData.Protect(System.Text.UTF8Encoding.UTF32.GetBytes("Testing"), Nothing, DataProtectionScope.LocalMachine))
Dim decryptedString As String = System.Text.UTF8Encoding.UTF32.GetString(ProtectedData.Unprotect(Convert.FromBase64String(encryptedString), Nothing, DataProtectionScope.LocalMachine))
Response.Write(encryptedString + " - " + decryptedString)
Làm thế nào để bạn lưu trữ chìa khóa trong một cách mà cho phép các ứng dụng để sử dụng mật khẩu mà không để lại chìa khóa ở một vị trí không an toàn ? – Tyrsius
Có một vài tùy chọn cho điều này .... bạn có thể sử dụng khóa có trong web.config (MachineKey) hoặc bạn có thể tạo khóa của riêng mình và đặt nó vào tùy chọn web.config được mã hóa. –
@Tyrsius - Tôi đã thêm một số chi tiết cũng như với các tùy chọn chỉ để cung cấp cho bạn một số suy nghĩ. –