Tuesday, May 1, 2012

Access denied. You do not have permission to perform this action or access this resource.

Error:
Access denied. You do not have permission to perform this action or access this resource.

Stack Trace:
at Microsoft.SharePoint.Client.ClientRequest.ProcessResponseStream(Stream responseStream)
at Microsoft.SharePoint.Client.ClientRequest.ProcessResponse()
at Microsoft.SharePoint.Client.ClientRequest.ExecuteQueryToServer(ChunkStringBuilder sb)
at Microsoft.SharePoint.Client.ClientRequest.ExecuteQuery()
at Microsoft.SharePoint.Client.ClientRuntimeContext.ExecuteQuery()
at Microsoft.SharePoint.Client.ClientContext.ExecuteQuery()
at ConsoleApplication2.Program.getSubWebs(Web orootweb, String path)

Error Code:
clientContext.Load(oWebsite, website => website.Webs, website => website.Title);
clientContext.ExecuteQuery();
 
Error Cause:
There lots of SubSites and some Webs has not permission so when we call  "website => website.Webs" above error file.
 
Error Resolution:
There is one out of the box method for fetch Current User's site (WebCollection result = oWebsite.GetSubwebsForCurrentUser(new SubwebQuery());).
 
Working Code:
WebCollection result = oWebsite.GetSubwebsForCurrentUser(new SubwebQuery());
clientContext.Load(result, n => n.Include(o => o.Title));
clientContext.ExecuteQuery();
 

Happy SharePointing...!!!