有关可互操作(SOAP,REST)WCF服务的安全性和身份验证设计概念

时间:2012-02-15 23:15:39

标签: asp.net-mvc-3 security asp.net-membership restful-authentication wcf-interoperability

我想从这个场景开始。 我尽可能地创建了一个WCF服务,这意味着我有三个端点,一个使用wsHttpBinding(SOAP),后者将在设置我的证书时使用传输安全性,两个webHttpBindings,一个格式化JSON,另一个XML消息,我想在那里添加传输安全性。

既然这些端点适用于我接受并返回字符串的简单示例方法,我必须找出我需要选择的身份验证系统!

主客户端应用程序将是一个ASP.NET MVC应用程序,在这里我很乐意使用ASP.NET成员资格提供程序在我的客户端应用程序内进行身份验证和授权,并在WCF请求中使用这些凭据。我可以做到这一点,但现在其他系统供应商进入设计,可能(至少现在)和Android和iOS移动设备。好的是我们有REST端点用于他们想要使用的任何数据并优雅地处理,REST端点上的身份验证会发生什么?我永远不能使用开箱即用的ASP.NET成员资格提供程序来自动处理请求,是吗?

我现在的第一个问题是,我能以某种方式结合吗?谁有最佳实践,谁实施了这样的场景?我应该使用自定义身份验证系统吗?我应该从内部使用Membership API并验证对数据库的每次调用吗? 还有很多其他问题我没有用REST获得...凭据是在每个邮件头请求中吗?

我想到的另一件事是创建两个不同的服务(一个用于MVC应用程序,两个用于REST XML,JSON在每个请求中对数据库进行身份验证)但这可能是可维护的噩梦。

你明白了,欢迎任何建议和想法!

谢谢。

1 个答案:

答案 0 :(得分:1)

为什么你不能尝试ServiceStack。将您的所有逻辑推送到服务,客户端将使用您喜欢的js库(例如angularjs)进行单页应用。您可以在http://razor.servicestack.net/找到完整示例。

它还支持OAuth和基于表单的身份验证的开箱验证。虽然有更多的可用。

为什么不是WCF?原因不止一个。 WCF很好,并且做了许多大多数用例都不需要的东西。 Servicestack易于用于服务器上逻辑的这种场景。它默认支持REST,SOAP 1,SOAP 2,JSON,JSV,XML等。它将为您提供一个快速入门。还有一个Servicestack与Monotouch的例子,所以应用程序在iOS上运行。而且servicestack还提供了很多其他的东西。访问网站,如果需要进一步的详细信息,请告诉我。