我们设置了Sharepoint搜索(不是企业)来索引我们的一些标准asp.net网站,如果我去sharepoint的搜索页面搜索任何具体的东西,我得到的结果是我正在寻找的。
但是,我现在尝试从标准网站(而不是在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方面我必须改变它。但是什么?
任何帮助都将不胜感激。
答案 0 :(得分:0)
看起来我修复了我的问题。感谢Microsoft的Michael O'Donovan提供的建议和建议。
我目前正在使用RSS提要进行搜索,这会将我的描述字段返回给我。看起来它也接受我的凭据(虽然我需要测试搜索结果以确保我得到正确的条目)。搜索RSS提要及其查询字符串参数的网址如下:http://searchsite/_layouts/srchrss.aspx?k=keyword&s=scope&u=&start=1
我们没有在sharepoint环境中运行Kerberos,这是我们对search.asmx和spsearch.asmx页面进行身份验证问题的原因。认证在某处发生了双跳,而且kerberos会解决这个问题。
希望这有助于解决与我同样困境的其他人。