日期:2014-05-18  浏览次数:20524 次

权限设置问题,IIS、COM组件,顶者有分
1、如何添加一个帐户到“IIS管理员”组?
        我的目的是想添加network   service这个东西到IIS6.0的管理员组中。
2、关于IIS配置的COM组件是哪一个?
        我想改变它的权限,以便能够通过asp.net的webform中编辑站点属性。
问题背景:
      我正在做一个通过asp.net编辑IIS的网站。平台使用win2k3+IIS6.0+.NET   2.0,使用系统的管理员帐户本地编译执行,一切正常。
      使用系统的普通帐户编译执行,出现异常:System.Runtime.InteropServices.COMException   (0x80070005):   拒绝访问。


工程结构说明:
    一个专门添加站点的类:   addsite.cs[没有问题],使用的是WMI,权限使用的方法是MSDN上介绍的部分代码模拟。
    一个专门获取站点信息和修改站点的类:getiisinfo.cs[有问题],使用的是ADSI,权限方面使用以下方法都不能解决问题:
    1、在webconfig中添加 <identity   impersonate= "true "   userName= "wmi "   password= "wmi "/>
    2、使用MSDN上的部分代码模拟

代码调用说明:
useraddsite.aspx
    void   button_click(Object   sender,EventArgs   e){
          new   addsite(一些参数);
    }

addsite.cs
    createsite(一些参数);//正常执行,这个也是需要权限的,使用wmi实现
    getiisinfo   gi=new   getiisinfo();
    gi.setiisinfo(一些参数);
    //执行失败,触发异常,使用ADSI实现的,DirectoryEntry
   

补充说明:
  管理员运行是完全可以的,说明全部都是权限的原因。为了安全,我不想把aspnet和everyone设置到管理员组。

部分调试结果:
System.Web.HttpContext.Current.Response.Write( "用户名 "   +   System.Web.HttpContext.Current.User.Identity.Name);
                if   (impersonateValidUser( "wmi ",   "127.0.0.1 ",   "wmi "))
                {
                        System.Web.HttpContext.Current.Response.Write( " <br> 用户名 "   +   System.Web.HttpContext.Current.User.Identity.Name+ " <br> ");
                  }
                undopersonate();

impersonateValidUser()就是开始模拟的函数,成功模拟返回真。wmi是管理员。undopersonate()是取消模拟。
这个调试输出的结果都是
用户名webster
用户名webster
第一个输出能够理解,但是第二个是我执行模拟后输出的,应该输出
用户名wmi
才对。


[顶者有分]

------解决方案--------------------
帮顶了
------解决方案--------------------
先顶
------解决方案--------------------
先帮顶了,太长了
------解决方案--------------------
我虽然没有回答您的问题,但也帮您顶了下,求您给小女几分好吗?我非专业,但需要点分提问啊!
呵呵,谢谢!!
------解决方案--------------------
也来顶一下..看看有分没
------解决方案--------------------
顶者
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
顶就有分.我就顶.
------解决方案--------------------

------解决方案--------------------
顶!!!!
------解决方案--------------------