OData - 数据服务简单认证

标签 odata wcf-data-services dataservice

我想为数据服务添加简单的身份验证,目前只是通过简单的 token 来限​​制对特定应用程序的访问。

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

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

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) 上创建对象上下文时,我可以添加凭据。

Uri uri = new Uri("http://localhost/myapp/odata.svc");

MyEntities ent= new MyEntities (uri);
ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56");

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

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

protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
 string cred = args.OperationContext.AbsoluteRequestUri.UserInfo;
}

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

所以我有两个主要问题:

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

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

问候, 丹尼尔·斯科沃伦斯基

最佳答案

有一系列关于身份验证和 WCF 数据服务(OData 协议(protocol)的 .NET 实现)的文章:http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/

您应该能够在那里找到更多信息(包括代码示例)。

关于OData - 数据服务简单认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3502792/

相关文章:

odata - Web API 2.2 - OData v4 ODataQueryOptions.applyTo() 在 $select 或 $expand 存在时返回 null?

javascript - Angular2 - 没有 'new' 就无法调用类构造函数

c# - 应用健康监测

c# - 如何从 HttpWebResponse 创建 ODataMessageReader?

WCF 数据服务与 WCF RIA 服务

c# - 将 ADO.NET 数据服务和自定义 ServiceContract 组合在同一个类中?

Angular 4 get函数在http post请求后返回值

asp.net-mvc - 将模型验证移至服务类 - ASP.NET MVC

java - 如何获取 flex-messaging-client-android.jar?

c# - OData 过时代码