zyc8211 发表于 2015-9-25 13:11:45

如何开启匿名访问SharePoint 2010里的Client Object Model

  正如大家所知道的,SharePoint 2010 集成了一个新的特性“客户端对象模型(Client Object Model)”,这真的是个很有趣的东西,开发人员可以很方便的写一些简单的程序来访问SharePoint 的数据,无论是.Net 应用程序,Silverlight,还是JavaScript,当然你可能会说我们可以调用SharePoint Web Service,但是对比一下Code,我认为Client Object Model可能来的更容易些。
  言归正传,今天在写一段JavaScript 去访问SharePoint数据的时候,当测试匿名(Anonymous)用户的时候, 弹出了JS 异常:

  Fiddler 返回的信息:
  HTTP/1.1 200 OK
  Cache-Control: private
  Content-Type: application/json
  Vary: Accept-Encoding
  Server: Microsoft-IIS/7.5
  SPRequestGuid: 26ba18ca-cab7-453d-b58d-46ab3f4f78f2
  X-SharePointHealthScore: 5
  X-Content-Type-Options: nosniff
  X-AspNet-Version: 2.0.50727
  X-Powered-By: ASP.NET
  MicrosoftSharePointTeamServices: 14.0.0.XXXX
  Date: Tue, 04 OCT 2010 06:16:21 GMT
  Content-Length: 352
  
  [
  {
  "SchemaVersion":"14.0.0.0","LibraryVersion":"14.0.XXXX.XXXX","ErrorInfo":{
  "ErrorMessage":"The method \"GetItems\" of the type \"List\" with id \"{d10206F1-e275-3a1c-b1c2-ea2319a72121}\" is blocked by the administrator on the server.","ErrorValue":null,"ErrorCode":-2147024846,"ErrorTypeName":"Microsoft.SharePoint.Client.ApiBlockedException"
  }
  }
  ]
  
  后查阅了MSDN, 原来SharePoint 2010 需要修改一个属性SPClientCallableSettings.AnonymousRestrictedTypes为匿名调用GetListItem,为此我们可以使用Feature 或者Powershell去修改这个属性.
  
  >>PS
  $site = Get-SPWebApplication -Identity "http://MyDev01"
  $site.ClientCallableSettings.AnonymousRestrictedTypes.Remove(, "GetItems")
  $site.Update()
  
  Okay, 现在应该可以了. :)
  
页: [1]
查看完整版本: 如何开启匿名访问SharePoint 2010里的Client Object Model