joh*_*hny 5 windows security uac windows-vista windows-7
当我编写需要执行"可管理"操作的应用程序时会发生什么?
就像把文件写到C:\Program Files- 然后,当应用程序试图这样做时,会发生什么?是否会弹出一条消息,要求用户输入密码?是否会抛出异常?程序会终止并且计算机会爆炸吗?上述所有的?:)
另请注意:Windows 7用户默认是否以管理员身份登录?
通常,Windows Vista和Windows 7不会自动检测到您需要管理员权限,并且不会自动提升您的应用程序.Microsoft有一些正确请求提升的准则.没有清单的旧应用程序也可能发现自己也是虚拟化的 - 也就是说,您对程序文件的写入可能会被重定向到用户配置文件目录下的目录.
请记住,您应该将特权操作保持在最低限度.UAC的存在是为了阻止应用程序开发人员请求不必要的管理访问,以提高安全性.唯一应该弄乱程序文件的程序是安装程序.
请注意,Windows 7/Vista上的管理用户无法在不提升的情况下使用其权限 - 管理员令牌的完整性级别高于默认情况下运行的进程,因此无法访问.如果您尝试执行需要此类访问的操作,您将收到拒绝访问错误; 底层API不会抛出任何类型的异常,它们通常会失败并设置GetLastError()为ERROR_ACCESS_DENIED.当然,更高级别的API可能会选择将其转换为抛出的异常,或者以暴力方式终止,尽管后者非常粗鲁,并且不太可能出现在任何内置的Windows API中.