簡體   English   中英

C#:向用戶詢問密碼,然后將密碼存儲在SecureString中

[英]C#: Ask User for a Password which is then stored in a SecureString

在我正在為客戶開發的小應用程序中,我需要向用戶詢問他的Windows登錄用戶名,密碼和域,然后使用System.Diagnostics.Process.Start來啟動應用程序。

我有一個帶有UseSystemPasswordChar的文本框來屏蔽輸入的密碼。

我需要一個System.Security.SecureString來將密碼提供給System.Diagnostics.Process.Start

如何將輸入的文本轉換為安全字符串而不是一個又一個字符? 或者:是否有更好的窗口控件要求用戶輸入密碼,將輸入的文本作為SecureString返回?

嘗試查看SecurePasswordTextBox自定義控件。 您是否嘗試執行類似於“運行方式”類型命令的操作,您嘗試以與當前登錄用戶不同的用戶身份運行該進程? 如果沒有,您應該能夠只調用Process.Start並讓它獲取當前用戶憑據。

另外,請查看以下資源:

最好的選擇可能是使用一些interop p / inovke代碼調用CredUIPromptForCredentials來顯示標准Windows對話框,然后使用該信息調用Process.Start,或者更有可能調用CreateProcessAsUser函數。

SecureString一次想要接受一個字符的原因是否則在此之前你將擁有整個字符串並導致字符串在內存中。 因此,在這種情況下使用SecureString會破壞目的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM