我的Web Service需要在执行过程中读写注册表,怎样才能提升Web Service的权限让它有读写注册表的能力
注:我试过在注册表编辑器中对设置权限,但这样做对系统在危险,有没有另一种方法可以能过代码过提升对注册表的访问权限

解决方案 »

  1.   

    问题我已经解决了,把解决方法共享给大
    我是要对SOFTWARE\\SIC\\SaveData_WS内的键值进行访问,所有要把访问权限设到SaveData_WS上,而不是SOFTWARE上,我刚才的错误于将权限赋予了SOFTWARE,解决这个问题要进行两步
    1.在注册表编辑中对SaveData_WS的everyone用户赋予ALL权限,
    2.在要代码访问路径的后面加上true就可以了,这样Web程序就要以对注册表进行读写了我的具体代码如下,希望能帮忙到有同样问题的朋友:Dpublic static void SetFlagValue(int i)
    {
    RegistryKey LMacKey = Registry.LocalMachine ;
    RegistryKey software = LMacKey.OpenSubKey("SOFTWARE\\SIC\\SaveData_WS", true) ;

    software.SetValue("Flag", i.ToString()) ;
    LMacKey.Close();
    } public static int GetFlagValue()
    {
    RegistryKey LMacKey = Registry.LocalMachine ;
    RegistryKey software = LMacKey.OpenSubKey("SOFTWARE\\SIC\\SaveData_WS", true) ;

    int val = int.Parse( software.GetValue("Flag").ToString() );//SaveData_WS.GetValue("Flag").ToString());
    software.Close();
    return val;
    }
      

  2.   

    不推荐把在注册表某个键值的everyone用户赋予ALL权限 你添加 “ASPNET” 或者 “WebService”用户(视IIS版本而定) 对此键值的读写权限就可以了。
      

  3.   

    支持下楼主精神可嘉,以后遇到这样的问题第一时间看MSDN会更好的