使用无效凭据调用Process.Start

时间:2011-06-27 19:25:40

标签: c# process

如果我使用无效凭据(即密码)拨打Process.Start会怎样?我得到了Win32Exception,但这对我来说似乎不对。但是,文档表明它不是为报告凭据错误而设计的。这是安全功能吗?

1 个答案:

答案 0 :(得分:3)

不,Win32Exception是正确的。如果你在MSDN documentation上看一点:

  

打开关联文件时发生错误。

     

-OR -

     

参数长度和相关文件的完整路径长度之和超过2080.与此异常关联的错误消息可能是以下之一:“传递给系统调用的数据区域也是如此小。” 或“访问被拒绝。”

强调我的。

我想说,这不是很清楚。用反射器查看代码似乎与文档一致。

修改

一些管道细节..

由于很多原因,

Process.Start会抛出Win32Exception;如果在启动过程中出现任何问题,几乎可以。在内部,.NET被称为CreateProcessWithLogonW,如果失败,它会抛出Win32Exception并将NativeErrorCode属性设置为返回的GetLastWin32Error。你可以通过查看代码来确定它被抛出的原因。查找每个代码的含义here