Here’s a good tip for elevating privileges in SharePoint.
http://blogs.devhorizon.com/blogs/reza_on_blogging/archive/2007/07/12/484.aspx
For those who doesn’t want to click on that link (like myself when I searching for this post again), here’s the code.
//Don't dispose the following two objects. Sharepoint will take care of their disposal when page is completely rendered.
SPWeb webInUserContext = SPContext.Current.Web;
SPSite SiteInUserContext = SPContext.Current.Site;
Guid webGuid = webInUserContext.ID;
Guid siteGuid = SiteInUserContext.ID;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// get the site in impersonated context
using (SPSite site = new SPSite(siteGuid))
{
// get the web in the impersonated context
SPWeb web = site.OpenWeb(webGuid);
// Do your work here
web.Dispose();
}
});
There we go. I used this piece of code to access the SPFile of a document within SharePoint. SPFile requires elevated privileges, and can’t be access with just your normal privileges.
My code works now, and I’m happy. :)