在我的程序中,我需要在参数中询问用户密码:
[Cmdlet(VerbsCommon.Get, "MyTest"]
public class GetMyTest : PSCmdlet
{
[Parameter(Mandatory=true)]
public ? Password { get; set;}
}
我无法弄清楚密码使用的正确类型是什么。在另一个问题: How does one securely handle passwords in a custom written PowerShell cmdlet?
接受的答案要求在代码中使用read-host,但我必须使用参数来请求此字段。
我也尝试使用SecureString for Password,但我无法为此参数提供SecureString,因为它会自动被接受为字符串,而不是安全字符串。
是否有任何方法可以实现以下用途:
Get-MyTest -Password ***** (where I actually type in 'abcde' but the input is masked.)
答案 0 :(得分:1)
通常做的是将密码存储在字符串类型的变量中,然后以某种方式对其进行哈希(SHA256,MD5等)以将其存储在数据库中(或者比较它并允许或不允许用户使用访问该应用程序。
所以,我不确定有更好的类型。
答案 1 :(得分:1)
没有办法让命令行输入的特定部分用星号保护 - 命令行输入只是纯文本。
选项