能提升程序中某一段代码的执行权限吗
需求:程序里有个settings窗口,其操作需要读写注册表(HKLM, ...),原来对non-admin用户是隐藏的,现在客户要求对non-admin用户不隐藏,但当其触发settings窗口时,弹出对话框让其提升权限(Vista下常见那种“用户帐户控制”窗口)。
发现Vista(其他版本的Windows也应该一样)下每次系统弹出“用户帐户控制”窗口让你“允许”或者“输入admin的密码”再执行某个操作时,等那个操作开始运行,你会发现进程数目多了一个(有时候是两个),由此基本可以断定,那个需要提升权限才能执行的操作应该是一个[单独]的exe。
所以,想暂时提升程序中某一段代码的执行权限,貌视不合理了(除了上述的Windows的做法惯例外,即使能做到也有安全上的问题)。但还是希望有哪位高人,帮忙指点清楚。
--------------------编程问答-------------------- 哈 实现 起来并不难 ........你也就是 为了 弹出 对话框而不是别的 所以直接把 对话框弹出来不就拉倒了! --------------------编程问答-------------------- 楼主这问题问得有些怪,应该不叫提升程序中某一段代码的执行权限,而是在执行程序过程中改变帐户获得更高的角色的权限以访问某段代码。
执行程序过程中改变windows登录帐户我还没见过,看你的说明,也许VISTA能办到。
不过C#程序可以实时检查当前的windows登录帐户,并根据其角色赋予相应的代码访问权限。你可以参考C#高级编程(第四版)第16章第3节,基于角色的安全性。或CSDN查找Principal相关的信息。 --------------------编程问答-------------------- 如果你是超级用户,那么可以指定以任何一个用户身份来执行一段程序,如果你说的意思是这个的话。
可以参考:
http://blog.csdn.net/brain1977/archive/2006/06/19/813658.aspx
补充:.NET技术 , C#