我被鼓励了解到,Sharepoint 2010客户端对象模型实际上是对服务器进行远程调用。因此,我将Microsoft.Sharepoint.Client.Silverlight.dll和Microsoft.Sharepoint.Client.Silverlight.Runtime.dll从我的Sharepoint 2010服务器复制到我的开发机器(没有Sharepoint)。我假设我在Sharepoint 2010服务器上测试的Silverlight代码也适用于我的开发机器。当然,我不使用“ApplicationContext.Current.Url”,因为我没有在Sharepoint中执行,所以我手动添加sharepoint服务器名称,如下所示(对帖子保持匿名):
//ClientContext context = new ClientContext(ApplicationContext.Current.Url);
ClientContext context = new ClientContext("https://[servername]");
_web = context.Web;
context.Load(_web);
context.Load(_web.Lists);
context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler (OnRequestSucceeded), new ClientRequestFailedEventHandler(OnRequestFailed));
当我执行代码时,我会被Windows身份验证窗口(Sharepoint配置为使用Windows身份验证)提示,我添加了我的域/用户和密码。但是,我收到以下错误:
注意:通过更改绑定安全模式=“Transport”并在Sharepoint根网站上包含clientAccessPolicy.xml文件,我能够在给出类似错误的情况下使Sharepoint 2010 Web服务正常工作。我是否需要为客户端对象模型端点配置另一个Sharepoint目录?
答案 0 :(得分:1)
请查看以下博客文章,您需要在sharepoint网站根文件夹中添加 clientaccesspolicy.xml 文件。
http://vangalvenkat.blogspot.com/2011/08/sharepoint-2010-getting-list-item.html
答案 1 :(得分:0)
using (Microsoft.Sharepoint.Client.ClientContext ctx = new Microsoft.Sharepoint.Client.ClientContext("http://sharepointserver")){
ctx.AuthenticationMode = Microsoft.Sharepoint.Client.ClientAuthenticationMode.Default
}
这也应该可以防止任何Windows身份验证弹出窗口