您现在的位置: 爱51代码网 >> 范文 >> 文章正文
C#中如何动态提升权限

C#中如何动态提升权限

C#中,以下问题:
1。如何判断哪个动作需要管理员权限?
比如运行时向Program Files子目录下写入文件时,怎么知道当前用户权限不够?
2。在知道当前权限不够的情况下,如果弹出UAC(用户权限控制开窗),来动态提升当前进程权限?
不是在程式运行前通过Run As等提升,而是进程已启动后,在一个操作没有权限的情况下,开启UAC开窗以获得管理员权限

加上mainfest文件,或者将其作为资源编译,具体参考《windows核心编程》第四章

1
try..catch 分析message
2
window系统说 你的要求很过分,
目前你可以在运行前或者运行后使用run as 或者某种api提升进程的权限,无法为某个操作提升权限

安全意识很不错:)

最简单的做法是:重启自己,并要求提升:

C# code?... startInfo.FileName = Application.ExecutablePath; startInfo.Arguments = the operation we want to perform; startInfo.Verb = "runas";       //<-- Process p = Process.Start(startInfo);

QuitCurrentProcess();

其他的方法包括:另外写个要求UAC提升的程序,作为'操作服务器',由当前程序调用'操作服务器'来执行任务。这里的'调用'可以用WCF(remoting),COM,Socket等来实现。

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    linux上运行system函数时,print
    Failed to open eth0
    undefined reference timer_crea
    Failed to open eth0
    C/C++洗牌算法源代码
    ZOJ 3700 Ever Dream 文章中单词
    TortoiseGit和msysGit安装及使用
    sharepoint 2010 获取用户信息Us
    设计包含max函数的队列
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    LINK : fatal error LNK1123
    WTL中CHeaderCtrl列表头发生
    如何打开VS2010性能分析向导
    MFC窗体程序结束释放内存
    如何调用vc写的dlll直接返回
    Chartlet饼图提示文字重叠了
    gridview如何返回droplistdo
    未能加载文件活程序集“Acce
    DataGridView绑定IList<T>实
    vb.net关于control.tag的问题
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |