1

我一直在做大量的研究和阅读,以至于我的脑海中充满了各种选择。我想做的是创建一个 WCF 服务,该服务将使用基于角色的身份验证包含数据访问和业务逻辑。我想从使用 KendoUI 的 JavaScript 应用程序中使用此服务。我确实有基于消息的安全工作,并且我有 SqlMembershipProvider 和 SqlRoleProvider 在示例 WCF 服务中工作。从另一个 .NET 应用程序访问时它工作正常;我真正感到困惑的地方是使用 JavaScript 以 RESTful 方式访问它的最佳方式。

从我目前所读到的,听起来直接从 JS 到 WCF REST 可能不是最简单或最受支持的路径。许多与 REST 相关的 WCF 扩展已被弃用(例如 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 服务。我可以使用此答案中描述的技术实现 MVC 应用程序将与 Forms Authentication 一起使用的自定义 MembershipProvider 以集中 WCF 服务中的授权/身份验证逻辑,同时使其完全集成到 MVC 层以及利用 ASP.NET Forms 身份验证的功能(例如自动重定向和cookies)。

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

非常感谢,亚当

4

1 回答 1

1

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

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

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

于 2012-04-17T07:29:41.577 回答