We have a Sharepoint 2013 farm in our labs with which we would be interacting using the MOSS SOAP services and generating reports for a client.

To facilitate this, we create a user JohnDoe who has View Only permission level on the target site for which the report is to be generated say MySite.

When we invoke the Webs.GetWebCollection() method in the Webs.asmx service, we get a 401 - Access Denied and our program aborts. If we change the permission level of JohnDoe to Contribute, then we are all good.

What permissions are needed for Webs.GetWebCollection() to be invoked successfully?.

By the way - a browser running under the context of JohnDoe can navigate to MySite and fetch the WSDL for Webs.asmx successfully.

1 Answer 1


Although it's not exactly your case, take a look to this link, cos I think is related with your error: http://blogs.msdn.com/b/chandru/archive/2010/10/15/sharepoint-2007-getwebcollection-webs-asmx-does-not-return-webs-based-on-a-user-permission.aspx.

Regarding the link, it seems that the method GetWebCollection, actually returns all the Webs, doesn't matter if the user has permissions or not, so, I can imagine that if the user doesn't have permissions, the error is expected. The article has a workarround creating a custom service, that I don't know if it's possible in your case.

Anyway, considering is SP 2013, I suggest you to use the CSOM instead of calling the old webservice. In this case, you can use the method:



Hope it helps.

  • 1
    I agree with you. Just as you were probably typing out this post, I came across the exact MSDN link that you mentioned. In addition there is one more link L:wssdevelopment.blogspot.in/2008/01/… which is related. Thank you very much for the note.It solves my query. Aug 26, 2014 at 9:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.