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

发布于 2024-09-14 12:55:44 字数 1890 浏览 4 评论 0原文

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

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

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

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/博客/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. < p>在哪里可以通过键入 ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56") 来读取包含
  2. 我可以在哪里(如果可以)在客户端应用程序上设置 UserInfo 并在 OnStartProcessingRequest 方法中使用它。

OnStartProcessingRequest 丹尼尔·斯科伦斯基

I would like to add simple authentication to Data Services, for now only to restrict access for particular applications by simple token.

I don't need Domain Authentication or Forms authentication.

I read a lot about authentication here:

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

Unfortunately it all demands a loooot of work.
Most of all creating custom IHttpModule.
There should be more simple solution.

I know that when I create object context on the client (WPF) I can add Credentials.

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

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

But where can I read them (without implementation of custom IHttpModule)?

I thought that I can use something in class that is implementation of Data Service for example:

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

I'm not familiar with UserInfo but description for it stands "Gets the user name, password, ...)

So I have two main questions:

  1. Where can I read Credentials included by typing ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56");

  2. Where can I (if I can) set UserInfo on the client app and use it in OnStartProcessingRequest method.

Regards,
Daniel Skowroński

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨离汐 2024-09-21 12:55:44

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

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

There's a series of post about authentication and WCF Data Services (which is the .NET implementation of the OData protocol): http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/

You should be able to find lot more information there (including code samples).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文