问题标签 [odata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
843 浏览

javascript - 如何对基于 JavaScript/JSON 的 OData 调用进行身份验证?

我是 OData 的新手(我认为大多数人都是)。

如果我有 OData 服务,如何保护它免遭未经授权的使用?我正在考虑使用 WS-Trust/SAML 或标准身份验证(如果这很重要)。

0 投票
1 回答
193 浏览

web-services - JSONP 是否仅用于完全公共的 API?

我使用 WCF 数据服务开发了一个 API,它公开了我的网站用户数据。

托管在那里的数据属于每个用户并且不公开,因此 API 使用每个客户端唯一的 API 密钥和基于 http 标头或 GET 参数的身份验证来保护。

现在我想知道是否应该在我的 API 上启用 JSONP。似乎它会使混搭更容易,但另一方面,我看到了类似以下的博客文章,这似乎表明 JSONP 本身是不安全的:

http://robubu.com/?p=24

我是不是理解错了,还是 JSONP 确实只适用于公共 API?

谢谢,

阿德里安

0 投票
1 回答
5676 浏览

odata - OData - 数据服务简单身份验证

我想向数据服务添加简单的身份验证,现在只是通过简单的令牌限制对特定应用程序的访问。

我不需要域身份验证或表单身份验证。

我在这里阅读了很多关于身份验证的信息:

http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/06/03/10482.aspx

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/15/10119.aspx

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/10/10100.aspx

不幸的是,这一切都需要大量的工作。最重要的是创建自定义 IHttpModule。应该有更简单的解决方案。

我知道当我在客户端 (WPF) 上创建对象上下文时,我可以添加凭据。

但是我在哪里可以阅读它们(没有实现自定义 IHttpModule)?

我认为我可以在类中使用一些实现数据服务的东西,例如:

我对 UserInfo 不熟悉,但它的描述是“获取用户名、密码......)

所以我有两个主要问题:

  1. 我在哪里可以阅读通过键入 ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56"); 包含的凭据

  2. 我可以在哪里(如果可以)在客户端应用程序上设置 UserInfo 并在 OnStartProcessingRequest 方法中使用它。

问候,丹尼尔 Skowroński

0 投票
3 回答
1131 浏览

sql - OData 是否打算在政府和金融环境中使用?我需要什么安全预防措施?

乍一看,OData 似乎只会吸引“开放”数据库,并且永远不会在需要安全的环境中使用,尤其是金融或政府客户。

这是当前版本的 OData/WCF 的正确观点吗?如果没有,你能分享我需要改变这种观点的任何东西吗?

更新

当前关注的示例包括:

  • 增加 SQL 注入的可能性
  • 附加数据验证(复杂的业务逻辑)
  • 未经授权访问数据
  • 增加“原始转储”数据的能力
    • 我的意思是使用 OData 获取 HR 数据更容易,然后是屏幕抓取传统的 ASP.net 页面

更新 2

我也可以执行业务规则吗?例如格式正确的 SSN、电话或 Zip。如何确保填写所有字段?

0 投票
1 回答
126 浏览

javascript - 如果我想使用 AJAX,我如何将 WCF/OData 访问实现为对我的 ASP.NET 站点的“付费升级”?

假设我正在接受一种商业模式,如果他们访问我的网站,可以免费访问我的专有数据。这些用户会有广告补贴的费用。

然后,对于付费用户,我想提供对我的数据的直接原始 WCF 访问作为激励。我不希望免费赠品用户可以使用它,但同时该站点正在使用 AJAX 来呈现页面内容。

问题

就像今天一样,AJAX 和原始 WCF 访问在线上看起来是相同的。我需要确定流量的来源是什么(网页,或不是),并保护我的实现免受滥用。

可能的解决方案?

可以获取页面变量(在 ASP.net/Javascript 中)并将其用作非付费用户所需的验证密钥。我可以在每个 AJAX 请求中包含这个密钥。如果这是最好的解决方案,我应该如何将它从服务器发送到客户端?

关于认证

不确定这是否重要,但所有用户(付费和非付费)都将通过身份验证。cookie 将存储在客户端上,并且可能由 STS 生成。

0 投票
1 回答
451 浏览

silverlight - WCF DataServices 扩展 12 个限制

我在 Silverlight 应用程序中使用 WCF 数据服务。我的问题是,对于我引用的模型,我需要访问超过 12 个扩展属性。原因是我正在引用具有递归模型的服务,基本上我需要在 4 个级别上进行 5 次扩展,这超过了显然是 12 次的最大扩展数。是否有另一种解决方案,而不是调用 BeginLoadProperty 数百次或多次来获得所需的效果?

0 投票
2 回答
819 浏览

wcf - RIA 服务 OData “不允许使用查询选项。”

我有一个由 RIA 自动创建的 OData 端点,它似乎适用于简单的“获取”查询。

例如

http://xxx/Service/BusinessApplication1-Web-DomainService1.svc/odata/ProductSet

但是当我尝试使用诸如“where”或“top”之类的查询时,例如:

.../BusinessApplication1-Web-DomainService1.svc/odata/ProductSet?$top=50

结果“不允许使用查询选项”。

我设置了一个具有 OData 端点的 WCF 数据服务,该端点可以正常工作并允许查询,那么为什么 RIA 生成的端点不起作用?

谢谢!

0 投票
1 回答
2289 浏览

odata - OData 代理的程序化生成

有使用 WCF 数据服务(ADO.NET 数据服务)的 OData 服务可用。我需要以编程方式使用 OData 服务。从某种意义上说,我不想使用 DataSvcUtil 创建代理。相反,在运行时我需要生成 OData 代理。

对于 WSDL,可以使用 CodeDOM 和 System.ServiceModel.Discovery 生成代理。

我很想知道是否有任何生成 OData 代理的编程方式。

谢谢

0 投票
1 回答
420 浏览

sql - 我的 odata sql 查询有什么问题?

我正在尝试获取每个年龄段的用户数量。odata.stackoverflow.com 的这个 sql 查询有什么问题?

0 投票
6 回答
15961 浏览

c# - 在 WCF 数据服务中使用枚举

我正在尝试使用 POCO 数据模型手动构建 WCF 数据服务,但我无法弄清楚如何正确公开enum值。假设一个简单的模型,如:

您如何OrderStatus通过 OData WCF 数据服务公开属性中的有价值信息?

如果您什么都不做,数据服务会生成运行时错误(枚举是无效属性)。我看到的至少解决错误的唯一答案是将enum属性标记为已忽略,例如:

这可行,但它迫使您从服务层“省略”有价值的信息。在 WCF 数据服务中使用枚举值是否还有其他选项?

编辑:请注意这是WCF 数据服务(又名 Astoria)。这不是原始的 WCF 服务,在这种情况下,答案会更清楚。