问题标签 [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.
javascript - 如何对基于 JavaScript/JSON 的 OData 调用进行身份验证?
我是 OData 的新手(我认为大多数人都是)。
如果我有 OData 服务,如何保护它免遭未经授权的使用?我正在考虑使用 WS-Trust/SAML 或标准身份验证(如果这很重要)。
web-services - JSONP 是否仅用于完全公共的 API?
我使用 WCF 数据服务开发了一个 API,它公开了我的网站用户数据。
托管在那里的数据属于每个用户并且不公开,因此 API 使用每个客户端唯一的 API 密钥和基于 http 标头或 GET 参数的身份验证来保护。
现在我想知道是否应该在我的 API 上启用 JSONP。似乎它会使混搭更容易,但另一方面,我看到了类似以下的博客文章,这似乎表明 JSONP 本身是不安全的:
我是不是理解错了,还是 JSONP 确实只适用于公共 API?
谢谢,
阿德里安
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 不熟悉,但它的描述是“获取用户名、密码......)
所以我有两个主要问题:
我在哪里可以阅读通过键入 ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56"); 包含的凭据
我可以在哪里(如果可以)在客户端应用程序上设置 UserInfo 并在 OnStartProcessingRequest 方法中使用它。
问候,丹尼尔 Skowroński
sql - OData 是否打算在政府和金融环境中使用?我需要什么安全预防措施?
乍一看,OData 似乎只会吸引“开放”数据库,并且永远不会在需要安全的环境中使用,尤其是金融或政府客户。
这是当前版本的 OData/WCF 的正确观点吗?如果没有,你能分享我需要改变这种观点的任何东西吗?
更新
当前关注的示例包括:
- 增加 SQL 注入的可能性
- 附加数据验证(复杂的业务逻辑)
- 未经授权访问数据
- 增加“原始转储”数据的能力
- 我的意思是使用 OData 获取 HR 数据更容易,然后是屏幕抓取传统的 ASP.net 页面
更新 2
我也可以执行业务规则吗?例如格式正确的 SSN、电话或 Zip。如何确保填写所有字段?
javascript - 如果我想使用 AJAX,我如何将 WCF/OData 访问实现为对我的 ASP.NET 站点的“付费升级”?
假设我正在接受一种商业模式,如果他们访问我的网站,可以免费访问我的专有数据。这些用户会有广告补贴的费用。
然后,对于付费用户,我想提供对我的数据的直接原始 WCF 访问作为激励。我不希望免费赠品用户可以使用它,但同时该站点正在使用 AJAX 来呈现页面内容。
问题
就像今天一样,AJAX 和原始 WCF 访问在线上看起来是相同的。我需要确定流量的来源是什么(网页,或不是),并保护我的实现免受滥用。
可能的解决方案?
可以获取页面变量(在 ASP.net/Javascript 中)并将其用作非付费用户所需的验证密钥。我可以在每个 AJAX 请求中包含这个密钥。如果这是最好的解决方案,我应该如何将它从服务器发送到客户端?
关于认证
不确定这是否重要,但所有用户(付费和非付费)都将通过身份验证。cookie 将存储在客户端上,并且可能由 STS 生成。
silverlight - WCF DataServices 扩展 12 个限制
我在 Silverlight 应用程序中使用 WCF 数据服务。我的问题是,对于我引用的模型,我需要访问超过 12 个扩展属性。原因是我正在引用具有递归模型的服务,基本上我需要在 4 个级别上进行 5 次扩展,这超过了显然是 12 次的最大扩展数。是否有另一种解决方案,而不是调用 BeginLoadProperty 数百次或多次来获得所需的效果?
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 生成的端点不起作用?
谢谢!
odata - OData 代理的程序化生成
有使用 WCF 数据服务(ADO.NET 数据服务)的 OData 服务可用。我需要以编程方式使用 OData 服务。从某种意义上说,我不想使用 DataSvcUtil 创建代理。相反,在运行时我需要生成 OData 代理。
对于 WSDL,可以使用 CodeDOM 和 System.ServiceModel.Discovery 生成代理。
我很想知道是否有任何生成 OData 代理的编程方式。
谢谢
sql - 我的 odata sql 查询有什么问题?
我正在尝试获取每个年龄段的用户数量。odata.stackoverflow.com 的这个 sql 查询有什么问题?
c# - 在 WCF 数据服务中使用枚举
我正在尝试使用 POCO 数据模型手动构建 WCF 数据服务,但我无法弄清楚如何正确公开enum
值。假设一个简单的模型,如:
您如何OrderStatus
通过 OData WCF 数据服务公开属性中的有价值信息?
如果您什么都不做,数据服务会生成运行时错误(枚举是无效属性)。我看到的至少解决错误的唯一答案是将enum
属性标记为已忽略,例如:
这可行,但它迫使您从服务层“省略”有价值的信息。在 WCF 数据服务中使用枚举值是否还有其他选项?
编辑:请注意这是WCF 数据服务(又名 Astoria)。这不是原始的 WCF 服务,在这种情况下,答案会更清楚。