如果我使用无效凭据(即密码)拨打Process.Start会怎样?我得到了Win32Exception,但这对我来说似乎不对。但是,文档表明它不是为报告凭据错误而设计的。这是安全功能吗?
答案 0 :(得分:3)
不,Win32Exception
是正确的。如果你在MSDN documentation上看一点:
打开关联文件时发生错误。
-OR -
参数长度和相关文件的完整路径长度之和超过2080.与此异常关联的错误消息可能是以下之一:“传递给系统调用的数据区域也是如此小。” 或“访问被拒绝。”
强调我的。
我想说,这不是很清楚。用反射器查看代码似乎与文档一致。
修改强>
一些管道细节..
由于很多原因, Process.Start
会抛出Win32Exception
;如果在启动过程中出现任何问题,几乎可以。在内部,.NET被称为CreateProcessWithLogonW
,如果失败,它会抛出Win32Exception并将NativeErrorCode
属性设置为返回的GetLastWin32Error
。你可以通过查看代码来确定它被抛出的原因。查找每个代码的含义here。