c# - URL Sharepoint Rest 查询中的保留符号(&、/等) - 错误请求

标签 c# sharepoint rest odata

过去几周我一直面临的一个问题是尝试在 SharePoint 中搜索列表项值,但不断收到错误的请求错误。我有两个符号导致问题,一个是我无法搜索带有 anh & 符号的内容,另一个是/(正斜杠)。

我的代码如下:

ServiceContext context = new ServiceContext(new Uri("http://URL/_vti_bin/listdata.svc"));
    context.Credentials = CredentialCache.DefaultCredentials;
    var requestType = (System.Data.Services.Client.DataServiceQuery<ListTypeValue>)context.ListType
        .Where(v => v.Value.Equals(search));

搜索互联网后,除了说更改 IIS 设置或将其转换为 ASCII Html 值(注意:将 & 转换为 %27 仍然会导致错误的请求错误)之外,没有返回任何有效信息。

最佳答案

我真的不建议使用 StartsWith 和 Length 的组合 - 在这种情况下性能可能会成为一个真正的问题。假设您需要一个字符串键,并且您希望您的键能够包含特殊字符,Peter Qiu 已在博客中介绍了我们可以提供的最佳建议。 (此行为实际上来自 IIS 和 .NET 堆栈的组合。)

查看http://blogs.msdn.com/b/peter_qian/archive/2010/05/25/using-wcf-data-service-with-restricted-characrters-as-keys.aspx有关更多详细信息,但您的问题应该通过关闭 ASP.NET 请求过滤来解决。请注意,这存在不小的安全风险。 Peter 指出了其中的一些,像 asafaweb.com 这样的安全过滤工具会提示这个解决方案。

长话短说:如果您可以使用整数或避免 key 中的受限制字符,您的 Web 应用程序将会更加安全。

关于c# - URL Sharepoint Rest 查询中的保留符号(&、/等) - 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12571572/

相关文章:

asp.net - 拿到身份证了吗?当前用户是否喜欢SharePoint?

java - 如何向 "/users?<some-query-here>"发出 GET 请求,然后在 JSON 数组中返回所有满足查询条件的用户

rest - 一个servant或 "how to mix monads properly"中rest api的简单示例?

c# - mvc中只能使用赋值、调用、自增、自减、new对象表达式作为语句

c#:什么是线程轮询?

wcf - 将WCF服务部署到SharePoint 2010网站时出现“找不到端点”错误

Sharepoint 查找正在使用 webpart 的位置

java - 无法开始使用 Jersey 用户指南

c# - 让 visual studio 2015 与带有 RIA 服务的 Silverlight 5.0 OOB 一起工作

c# - 如何对 ObservableCollection 进行排序?