Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#custom Cmdlet的参数中屏蔽用户输入密码_C#_Powershell_Cmdlet_Pscmdlet - Fatal编程技术网

如何在C#custom Cmdlet的参数中屏蔽用户输入密码

如何在C#custom Cmdlet的参数中屏蔽用户输入密码,c#,powershell,cmdlet,pscmdlet,C#,Powershell,Cmdlet,Pscmdlet,在我的程序中,我需要在参数中询问用户密码: [Cmdlet(VerbsCommon.Get, "MyTest"] public class GetMyTest : PSCmdlet { [Parameter(Mandatory=true)] public ? Password { get; set;} } 我不知道什么是正确的密码类型。在另一个问题中: 接受的答案要求在代码中使用read host,但我必须使用参数来要求此字段 我还尝试使用SecureString作为密码,但

在我的程序中,我需要在参数中询问用户密码:

[Cmdlet(VerbsCommon.Get, "MyTest"]
public class GetMyTest : PSCmdlet
{
    [Parameter(Mandatory=true)]
    public ? Password { get; set;}
}
我不知道什么是正确的密码类型。在另一个问题中:

接受的答案要求在代码中使用read host,但我必须使用参数来要求此字段

我还尝试使用SecureString作为密码,但我无法为此参数提供SecureString,因为它将自动被接受为字符串,而不是安全字符串

是否有任何方法可以实现以下用途:

Get-MyTest -Password ***** (where I actually type in 'abcde' but the input is masked.)

通常要做的是将密码存储在一个字符串类型的变量中,然后以某种方式(SHA256、MD5等)对其进行散列以将其存储在数据库中(或者进行比较并允许或不允许用户访问应用程序)


因此,我不确定是否有更好的类型。

无法使用星号保护命令行输入的特定部分-命令行输入只是纯文本

选择权

  • 将密码存储在文件中,使其在输入中不可见。现在的问题是如何保护该文件,但在某些情况下可能会起作用-例如,指定加密密码,类似于web.config中的加密设置
  • 要求用户键入密码
  • 相反,密码要求用户使用该帐户登录(对于Windows auth)
  • 如果有某种方法可以获得短期令牌(即使用OAUTH),您可以在明文中使用它,而不是密码