ODATA-数据服务简单身份验证
-
29-09-2019 - |
题
我想为数据服务添加简单的身份验证,目前仅通过简单令牌限制特定应用程序的访问。
我不需要域身份验证或表格身份验证。
我在这里阅读了很多有关身份验证的信息:
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/06/03/10482.aspx
http://mtaulty.com/communityserver/blogs/mike_taultys_blog/archive/Archive/2008/01/15/10119.aspx
http://mtaulty.com/communityserver/blogs/mike_taultys_blog/archive/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,但描述为“获取用户名,密码,...)
所以我有两个主要问题:
在哪里可以阅读通过键入ent.credentials = new NetworkCredential(“ token”,“ ZX5AS9VXC5SA9H0VB6523CV56”)的凭据。
我可以(如果可以的话)在客户端应用程序上设置UserInfo,并在OnstartProcessingRequest方法中使用它。
问候,丹尼尔·斯科万斯基
解决方案
有一系列有关身份验证和WCF数据服务的帖子(这是ODATA协议的.NET实现): http://blogs.msdn.com/b/astoriateam/archive/tags/authentication/
您应该能够在那里找到更多信息(包括代码示例)。