需要经过身份验证的WCF REST架构建议

时间:2012-04-17 03:58:25

标签: javascript wcf rest authentication kendo-ui

我一直在做那么多的研究和阅读,我的脑袋在旋转着。我想要做的是使用基于角色的身份验证创建一个包含数据访问和业务逻辑的WCF服务。我想从使用KendoUI的JavaScript应用程序中使用此服务。我确实有基于消息的安全性工作,我有一个SqlMembershipProvider和SqlRoleProvider在示例WCF服务中工作。从其他.NET应用程序访问时,它工作正常;我真正感到困惑的地方在于使用JavaScript RESTful访问它。

从我到目前为止所读到的,听起来像直接从JS转到WCF REST可能不是最简单或最好的支持路径。许多与WCF相关的REST扩展已被弃用(例如,不推荐使用WCF REST Starter Kit; WCF Web API最近成为ASP.NET Web API,不再引用WCF了吗?)。由于看起来REST的“官方”方式是使用ASP.NET Web API,ASP.NET Web API现在是ASP.NET MVC的一部分,这让我觉得我可能应该用ASP.NET MVC应用程序,它使用KendoUI代码提供页面,这些代码将对MVC应用程序进行RESTful调用,然后将调用转发给WCF服务。我可以使用this answer中描述的技术来实现一个自定义MembershipProvider,MVC应用程序将使用它与Forms身份验证集中WCF服务中的授权/身份验证逻辑,同时使其完全集成在MVC层中以及采取ASP.NET Forms身份验证功能的优势(例如自动重定向和cookie)。

回顾一下,对我来说,重要的部分是:1。一个身份验证,角色感知的WCF服务,以及2.以最简单的方式从JavaScript应用程序访问其方法。我想尽可能利用内置或开箱即用的功能。我上面提出的架构是否合理?它是否像我能得到它一样简单,还是比这更简单?

非常感谢, 亚当

1 个答案:

答案 0 :(得分:1)

我强烈建议您转向使用ASP.Net Web API框架。您可以使用ASP.Net MVC和Web API的组合实现您提到的所有内容,包括Authentication \ Authorization。

查看Visual Studio创建新的ASP.Net MVC项目时生成的模板。它包含身份验证工作流程的基本实现。您可以从此工作流程派生您的实现。

ASP.Net中的表单身份验证归结为在响应中设置表单身份验证票证cookie,然后使用ASP.Net提供的身份验证\授权基础结构来强制执行任何身份验证\授权约束。这与ASP.Net,MVC,WCF(在ASP.Net兼容模式下)无缝协作。