2011-05-23 47 views
1

我们已经建立Sharepoint搜索(不是企业)来索引我们的一些标准的asp.net网站,并且如果我转到sharepoint的搜索页面并且搜索任何具体的东西,我会得到我期待的结果。Sharepoint 2010通过webservice搜索给出“尝试执行未经授权的操作”

但是我试图从一个标准网站(不在sharepoint)中搜索webservice,并得到“试图执行未经授权的操作”错误。我知道我的身份验证是正确的,因为小提琴手向我展示了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()); 

我曾尝试和当前正在运行的所有三个以下的。

  1. 无处不在,无论是我的本地网站还是分享点搜索部分。
  2. 设置我自己的凭据,我在网站所有者和网站集管理员组
  3. 给我的机器名访问网站集管理员组(根据我的系统管理员的建议,因为两个网站应用程序池运行网络服务帐户)

是否还有其他需要设置或修复或查看的内容?我正在用尽想法。我还必须建立在共同点上的东西吗?

我已经尝试search.asmx/spsearch.asmx和.Query/.QueryEx,并且上面的错误消息没有区别。

有代码示例在那里你使用基本身份验证通过将其添加到头我已经尝试过,但也没有工作。我甚至尝试过NTLM,但是如果这是我的安全性,我肯定不会得到401和200的回应。

所以现在我开始认为这是在Sharepoint方面,我必须改变。但是什么?

任何帮助,将不胜感激。

回答

0

它看起来像我已经解决了我的问题。感谢Microsoft的Michael O'Donovan提供的建议和建议。

我目前正在使用RSS源进行搜索,这给了我的描述字段。它看起来像它也接受我的凭据(尽管我需要测试搜索结果以确保我获得正确的条目)。搜索RSS源的URL及其查询字符串参数如下:http://searchsite/_layouts/srchrss.aspx?k=keyword&s=scope&u=&start=1

我们没有在我们的SharePoint环境中运行Kerberos,这是我们对search.asmx和spsearch.asmx页面进行身份验证问题的原因。身份验证发生在某处,kerberos可以解决这个问题。

希望这能帮助与我处于同样困境的其他人。

+0

... Michael O'Donovan来自微软的建议和建议在哪里? 我认为这并不令人讨厌这个解决方案,而是说它是固定的。这对那些可能想要得到类似问题帮助的人有什么帮助? – codingjoe 2014-03-19 12:42:06

+1

嗨编程,我应该在我的评论中更清楚。 Michael指出的事实是,我们没有运行Kerberos,并且Sharepoint搜索需要多跳才能进行身份验证(我们希望使用它)。当时我们唯一的解决方案是设置Kerberos。 – Sonja 2014-04-16 12:25:14

+0

作为一种替代方案,他建议我们利用搜索RSS源,但它在可显示的内容以及如何操纵结果方面受到限制。 – Sonja 2014-04-16 12:32:59

相关问题