我想向数据服务添加简单的身份验证,现在只是通过简单的令牌限制对特定应用程序的访问。
我不需要域身份验证或表单身份验证。
我在这里阅读了很多关于身份验证的信息:
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 不熟悉,但它的描述是“获取用户名、密码......)
所以我有两个主要问题:
我在哪里可以阅读通过键入 ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56"); 包含的凭据
我可以在哪里(如果可以)在客户端应用程序上设置 UserInfo 并在 OnStartProcessingRequest 方法中使用它。
问候,丹尼尔 Skowroński