如何解决通过Web服务进行的SharePoint 2010搜索提供“尝试执行未经授权的操作”
|| 我们已经设置了Sharepoint搜索(虽然不是企业版)来索引一些标准的asp.net网站,如果我转到sharepoint中的搜索页面并搜索任何特定内容,就会得到想要的结果。 但是,我现在尝试从标准网站(不在共享点中)使用搜索Web服务,并收到“尝试执行未经授权的操作”错误。我知道我正在正确地进行身份验证,因为提琴手向我显示了401,然后显示了200,表示我可以。但是,当我调用.Query时(代码示例的最后一行),它给了我错误。 这是我的代码searchcentre2.QueryService queryService = new searchcentre2.QueryService();
System.Net.NetworkCredential _credentials = new System.Net.NetworkCredential(_username,_password,_domain);
queryService.Credentials = _credentials;
queryService.UseDefaultCredentials = false;
queryService.PreAuthenticate = true;
queryService.Url = _url;
m_lSearchResutls.Text = queryService.Query(queryxml.ToString());
我已经尝试过并且目前正在运行以下所有三个程序。
在本地站点和共享点搜索部分的所有地方都关闭匿名功能。
用我自己的凭据设置,并且我属于网站所有者和网站集管理员组
使我的计算机名称可以访问网站集管理员组(根据我的系统管理员的建议,因为两个网站应用程序池都在网络服务帐户下运行)
我还有什么需要设置或修复或查看的吗?我没办法尝试。我仍然必须在共享点方面进行设置吗?
我已经尝试了search.asmx / spsearch.asmx和.Query / .QueryEx,并且上面的错误消息没有区别。
那里有一些代码示例,您可以在其中使用基本身份验证,方法是将其添加到我尝试过的标头中,但这也不起作用。我什至尝试过NTLM,但是如果是我的安全问题,我肯定不会收到401,然后200的响应?
因此,现在我开始认为必须更改Sharepoint方面的内容。但是呢
任何帮助,将不胜感激。
解决方法
看来我已经解决了问题。感谢Microsoft的Michael O''Donovan的建议。
我目前正在使用RSS提要进行搜索,这使我的描述字段返回。看起来它也接受我的凭据(尽管我需要测试搜索结果以确保获得正确的条目)。 Search RSS feed的URL及其查询字符串参数如下:http://searchsite/_layouts/srchrss.aspx?k = keyword&s = scope&u =&start = 1
我们不在共享点环境中运行Kerberos,这是导致search.asmx和spsearch.asmx页面的身份验证问题的原因。身份验证发生了两跳,而Kerberos可以解决该问题。
希望这可以帮助我摆脱困境。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。