MOSS提升权限,模拟

在MOSS代码中用来提升权限,模拟成站点管理员的权限,在这过程需要用户MOSS里的对象模型里的

SPSecurity.RunWithElevatedPrivileges

来进行。

SPSecurity.RunWithElevatedPrivileges对象是可以将当前用户在代码里的安全上下文凭据提升模拟成当前站点的管理员的权限运行此代码。 如第一种情况: //模拟提升权限

SPSecurity.RunWithElevatedPrivileges(delegate

 {

//创建指定站点集

using (SPSite site = new SPSite(http://crmg-ea/mdms))

{ //打开网站

using (SPWeb web = site.OpenWeb())

{ //允许更新网站

web.AllowUnsafeUpdates = true;

//打开所属的文档库

SPList list = web.Lists[ListName];

………….

web.AllowUnsafeUpdates = false;

}

}

});

 这种情况下创建的SPSite对象会以全新的身份就是以站点管理员(SPSAdmin)的身份来运行下面的方法体的而不是当前登录用户真正在此网站里的权限。

如第二种情况:

//创建指定站点集

using (SPSite site = new SPSite(http://crmg-ea/mdms))

{ //模拟提升权限

SPSecurity.RunWithElevatedPrivileges(delegate

{ //打开网站

using (SPWeb web = site.OpenWeb())

 { //允许更新网站

web.AllowUnsafeUpdates = true;

//打开所属的文档库

SPList list = web.Lists[ListName];

 ………….

web.AllowUnsafeUpdates = false;

}

});

} 这种情况那么所创建的用户安全上下文的权限就是以当前登录用户在此网站中真正实际权限来运行接下来的代码方法体,虽然代码中创建的SPWeb对象打开网站是在SPSecurity.RunWithElevatedPrivileges模拟权限的方法块中运行,但根据代码的运行结果可以看出SPSecurity.RunWithElevatedPrivileges对象并没有起到提升权限的效果。 这两种说明了在SPSecurity.RunWithElevatedPrivileges对象方法块中创建站点SPSite对象所产生的运行效果是完全不同的

转载于:https://www.cnblogs.com/IsNull/archive/2010/08/30/1812393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值