2010-09-15 66 views
2

我担心如何实施安全措施,可能是身份验证或授权.. 如何实施这些措施..如果您有任何关于WCF REST 4.0安全性的想法或链接,并且您已经实施它也更好。因为我一直试图找出这个话题,我发现的所有信息都是关于如何使用3.5和更低的版本来实现它,这些版本似乎与我看到的样本不同,我试过但在实现它时没有意义。在REST中实现安全性?

谢谢

+0

我最近也想做同样的事情,并跑到www.dotnetopenauth.net。我认为它使用它。祝你好运! – 2010-09-15 17:25:47

回答

1

因为REST是无状态的,所以不能使用cookie或会话ID。对所有请求使用HTTP Basic Authentication和HTTPS是很常见的。

+0

感谢这篇文章,所以我得到了Base64编码的结果,其结果如下:QWxhZGRpbjpvcGVuIHNlc2FtZQ ==然后,我如何解析此回来获取我在这里传递的用户名和密码。可以用所有方法实现(Get,Put,Post和Delete)Thanks – Ravi 2010-09-15 09:23:08

+0

@Ravi您是否要求提供base64解码功能?是的,像认证元素这样的http头元素可以使用所有HTTP方法发送。 – rook 2010-09-15 18:21:43

+0

@谢谢你的回复。是的base64函数来实现您在评论中说的HTTP基本认证和HTTPS。 – Ravi 2010-09-17 04:28:10

1

您可能想要探索WCF REST的此解决方案,它是一个用于实现具有自定义用户数据库的基本身份验证的拦截器。

http://weblogs.asp.net/cibrax/archive/2009/03/20/custom-basic-authentication-for-restful-services.aspx

这拦截器进行身份验证与用户输入密码,并初始化当前主体,所以你可以,如果你想有一个逻辑的东西使用从服务本身是一个做授权或实施IAuthorizationManager可以在多个服务中重用。

您还可以在我的博客中找到其他身份验证方法,例如证书身份验证或OAuth,这些方法不太常见。

谢谢 Pablo。

+0

你好巴勃罗,我通过这样传递用户名和密码在客户端实现了安全性:m_RestHttpClient.TransportSettings.Credentials = new System.Net.NetworkCredential(“admin”,“admin”);我现在关心的是如何在服务器端提取此网络凭据 – Ravi 2010-09-20 05:42:09

0

对于授权,您可以查看XACML。