Chr*_*nce 8 asp.net sharepoint sharepoint-2007 asp.net-3.5 elevated-privileges
我有一种强烈的直觉,即RunWithElevatedPrivileges应该像瘟疫一样避免使用SharePoint ,但需要让其他人相信其确切原因.这就是我所拥有的.
dah*_*byk 15
将跌倒分为两类的原因:
对于前者,使用SPSite模拟会更好.后者是我使用RWEP的唯一原因.
为了澄清,RWEP不会产生新的线程.相反,它使用Win32 API将当前线程的标识恢复为进程标识(关闭模拟)以运行提升的代码,然后重新开启模拟以代表当前用户恢复工作.这有几个含义:
正如Alex所说,SPSite的子级继承了SPSite的权限,SPSite在创建时会权限设置.因此,即使您在CodeToRunElevated中引用它,SPContext.Current.Site仍将使用当前用户的权限.相反,您需要在提升的块中创建和使用新的SPSite.
总结一下:RWEP模拟SharePoint之外的App Pool,SPSite模拟模拟SharePoint内部的App Pool.
| 归档时间: | 
 | 
| 查看次数: | 3483 次 | 
| 最近记录: |