CreateSubKey物件的 方法My.Computer.Registry可用來建立登錄機碼。
程序
建立登錄機碼
使用
CreateSubKey方法,指定要將密鑰放置在哪個 Hive 下,以及密鑰的名稱。 參數Subkey不區分大小寫。 此範例會在 HKEY_CURRENT_USER 下建立登錄機碼MyTestKey。My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
若要建立登錄機碼,並在其中設定值
使用
CreateSubkey方法,指定要將密鑰放置在哪個 Hive 下,以及密鑰的名稱。 此範例會在 HKEY_CURRENT_USER 下建立登錄機碼MyTestKey。My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")使用
SetValue方法設定值。 這個範例會設定字串值。 “MyTestKeyValue” 替換為「這是測試值」。My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", "MyTestKeyValue", "This is a test value.")
範例
本範例會在 HKEY_CURRENT_USER 下建立登錄機碼 MyTestKey ,然後將字串值 MyTestKeyValue 設定為 This is a test value。
My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
"MyTestKeyValue", "This is a test value.")
健全的程式設計
檢查登錄結構,以尋找金鑰的適當位置。 例如,您可能想要開啟目前使用者的 HKEY_CURRENT_USER\Software 金鑰,並使用公司名稱建立密鑰。 然後將登錄值新增至貴公司的機碼。
從 Web 應用程式讀取登錄時,目前的使用者取決於在 Web 應用程式中實作的驗證和模擬功能。
將數據寫入使用者資料夾 () 而不是本機電腦 (CurrentUserLocalMachine) 更安全。
當您建立登錄值時,必須決定該值已經存在時該怎麼做。 另一個進程,可能是惡意的,可能已經建立了該值並擁有訪問權限。 當您將數據放入登錄值時,數據可供其他進程使用。 若要避免這種情況,請使用 GetValue 方法。 如果索引鍵不存在,則會傳 Nothing 回 。
即使登錄機碼受到 ACL(存取控制清單)的保護,將密碼等祕密以純文字形式儲存在登錄中仍然不安全。
以下條件可能會造成例外狀況:
鍵的名稱為
Nothing(ArgumentNullException)。用戶沒有建立登錄機碼的許可權(SecurityException)。
索引鍵名稱超過 255 個字元的限制 (ArgumentException)。
金鑰已關閉(IOException)。
登錄機碼是唯讀的(UnauthorizedAccessException)。
.NET Framework 安全性
若要執行此過程,您的元件需要由 RegistryPermission 類別授予的特權等級。 若在部分信任內容中執行,程序可能會因為權限不足而擲回例外狀況。 同樣地,用戶必須具有正確的 ACL,才能建立或寫入設定。 例如,具有程式代碼存取安全性權限的本機應用程式可能沒有作業系統的權限。 如需詳細資訊,請參閱 Code Access Security Basics。
備註
.NET Framework 和 .NET 的所有版本中,代碼存取安全性(CAS)已被棄用。 當使用 CAS 相關 API 時,最新版本的 .NET 不會接受 CAS 註釋,並會產生錯誤。 開發人員應該尋求替代方式來完成安全性工作。