使用RunWithElevatedPrivileges的时候,contributor也可以运行下面的代码:
不过contributor不能访问自己建立的document library。这是在使用的时候才能发现的问题。因为设置了siteCollection.CatchAccessDeniedException = false所以异常能被程序处理。否则默认情况下给site collection接收就会收到一个404错误页,发生什么也不知道。
这个access denied异常在foreach行出现,第一个loop就抛出。我猜RunWithElevatedPrivileges可能对某些list不起作用。既然这样就要想怎样不用foreach。还好SharePoint的API还算丰富,找到一个method:SPSite.OpenWeb(_strWeb)。
可能速度都会快点。