权限设置问题,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
------解决方案--------------------顶就有分.我就顶.
------解决方案--------------------顶
------解决方案--------------------顶!!!!
------解决方案--------------------