如何使用预先保存的 *** 凭据启动 ***?
Posted
技术标签:
【中文标题】如何使用预先保存的 *** 凭据启动 ***?【英文标题】:How to start *** using the pre-saved *** credentials? 【发布时间】:2016-11-01 02:31:32 【问题描述】:我在 Windows 7 中建立了一个名为“我的 ***”的 *** 连接,它保存了凭据。因此,当我在 Windows 中手动启动 *** 时,它会立即连接而无需询问用户的登录名或密码。
我现在想使用保存的凭据从代码启动相同的 *** 连接,但我还没有找到无需在代码中提供凭据即可启动它的方法,出于安全原因,我不想这样做.例如,只要我在参数字符串中提供登录名和密码,就可以了:
cmd.StartInfo.FileName = "rasdial.exe";
cmd.StartInfo.Arguments = "\"My ***\" mylogin mypassword";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.ErrorDialog = true;
cmd.StartInfo.RedirectStandardError = true;
cmd.Start();
当我从参数字符串中省略凭据时,它拒绝连接,即使该连接已保存它们。有没有办法从代码中强制它使用保存的凭据?
(Ed:我以前在 XP 中所做的是在网络连接下创建 *** 项的快捷方式,然后我可以直接调用例如“My***.lnk 的快捷方式”,这样就可以了。不知道是什么如果可能的话,Windows 7 的等效版本就是这样。)
好的,我知道了如何创建 *** 的快捷方式,所以我现在有一个 .lnk 文件。当我双击快捷方式时,*** 完美连接。另外,我可以使用start "" "C:\...\My***.lnk"
从命令行启动它——也可以。
但是,我无法从代码中重现它。我试过了:
cmd.StartInfo.FileName = "start \"\" \"C:\...\My***.lnk\"";
cmd.StartInfo.Arguments = "";
和
cmd.StartInfo.FileName = "start";
cmd.StartInfo.Arguments = "\"\" \"C:\...\My***.lnk\"";
抛出 Win32Exception“系统找不到指定的文件。”使用cmd.exe
的变体也失败了......我现在已经没有想法了。
【问题讨论】:
“cmd”是什么对象类型? 【参考方案1】:使用 rasphone.exe。
cmd.StartInfo.FileName = "rasphone.exe";
cmd.StartInfo.Arguments = "-d \"My ***\"";
...
...
...
SuperUser上有一个关于使用这个的答案
【讨论】:
谢谢!!我在某处读到(或误读)rasphone 是 XP 版本,所以根本没想过要尝试。 :)以上是关于如何使用预先保存的 *** 凭据启动 ***?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PowerShell 启动/停止远程服务器上的服务 - Windows 2008 并提示输入凭据?
在 CORS 中,是不是已预先发送带有凭据的 POST 请求?