如何:在 Visual Basic 中建立登錄機碼並設定其值
My.Computer.Registry
物件的 CreateSubKey
方法可以用來建立登錄機碼。
程序
建立登錄機碼
使用
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" 設定為 "This is a test value"。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 應用程式中所實作的驗證和模擬。
將資料寫入使用者資料夾 (CurrentUser) 比寫入本機電腦 (LocalMachine) 更安全。
當您建立登錄值時,您需要決定如果該值已經存在該怎麼辦。 另一個可能是惡意的處理序,可能已建立值並具有其存取權。 當您將資料放在登錄值中時,資料可供其他處理序使用。 為避免此問題,請使用 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 註釋,並會產生錯誤。 開發人員應尋求替代方案來完成安全性工作。