默认凭据启动过程
问题描述:
我用我的凭据运行的进程,但是,我想使用默认的凭据,我的意思是使用当前用户名和密码,足不出户throuh下面的代码:默认凭据启动过程
var pass = new SecureString();
pass.AppendChar('p');
pass.AppendChar('a');
pass.AppendChar('s');
pass.AppendChar('s');
pass.AppendChar('w');
pass.AppendChar('o');
pass.AppendChar('r');
pass.AppendChar('d');
Process.Start("file.txt", Environment.UserName, pass, "");
因为该应用程序将在不同的计算机上工作,因此它应该获得当前的凭据并使用它们。
编辑
的问题是,我要运行该文件是一个.bat文件,将做一些CMD命令,它必须提供一个证书才能使用
答
我不明白:如果你想使用默认凭据执行过程中,根本就没有任何人都可通过:如果您需要更复杂的语法
Process.Start("file.txt");
,重定向输入/输出,隐藏窗口或其他东西你可以用ProcessStartInfo。
用户编辑后,编辑:
你根本无法恢复用户密码,这是不允许的。
据报道在this link:
下使电流 线程运行(不一定登录的用户)使用
WindowsIdentity.GetCurrent()
你可以得到用户的当前身份。
或者,您可以通过Environment.UserName
属性获取登录的 用户名。
但不保证 是运行当前进程的用户。
没有 Windows API获取用户密码,因为密码不存储在 Windows中。
取而代之的是Windows存储单向哈希版本。
答
如果在cmd里面有人再次询问你的凭证,那么没有办法以编程的方式获得当前用户的密码,所以你唯一拥有的就是再次询问用户密码,但这可能是一个安全漏洞。
这是开玩笑吧? – 2012-02-17 14:29:10
当你启动一个进程时,你默认模拟当前用户... – 2012-02-17 14:29:33
这是与你的问题相关http://*.com/questions/9322516/run-bat-file-from-c-sharp?为什么重复呢? – Marco 2012-02-17 14:30:27