OData - 数据服务简单认证

时间:2010-08-17 13:18:54

标签: odata wcf-data-services dataservice

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

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

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

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方法中使用它。

  3. 此致 DanielSkowroński

1 个答案:

答案 0 :(得分:3)

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

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