MVC2应用程序(和其他人)共享WCF服务和身份验证

时间:2010-02-16 19:52:51

标签: asp.net-mvc wcf forms-authentication

我在这里解释了几个类似的场景,但不是我特别的场景。我想知道是否有人可以告诉我进入哪个方向?

我正在开发两个(以及更晚的)MVC2应用程序。稍后还会有另一个(更厚的)客户端(WPF或Silverlight,TBD)。 这些都需要共享相同的身份验证。对于MVC2应用程序,他们(最好)需要单独登录 - 即如果用户登录到一个MVC2应用程序,只要cookie没有超时,就应该授权另一个MVC2应用程序。

将使用表单身份验证。

所有应用程序都需要使用通用业务功能,并通过通用WCF服务应用程序执行数据库访问。如果WCF不能公开访问(即在FW后面被阻止),那将是很好的(我认为)。较厚的客户端可以使用附加服务层来访问Common WCF App。

这看起来应该是:

MVCApp1 - > WCFAppCommon

MVCApp2 - > WCFAppCommon

ThickClient - > WCFApp2 - > WCFAppCommon

是否可以在WCFAppCommon中执行所有身份验证/授权? 否则我想我将不得不重复MVCApps和WCFApp2中的所有安全逻辑,而对我来说,它似乎自然而然地存在于WCFAppCommon中。另一方面,似乎我在WCFAppCommon中进行身份验证/授权,我将无法使用表单身份验证。

在我看到可能的解决方案(我还没有尝试过)时,它们似乎比表单身份验证和单个数据库复杂得多。

任何帮助表示赞赏,

菲尔

2 个答案:

答案 0 :(得分:4)

我想我应该用我学到的东西回来(并重新学习)。

首先重新学习的课程 - 不要固定在架构上,然后尝试使其他一切都适合。我修复了.Net,SQL Server,WCF,MVC2,EF4和IIS7。在我的脑海中确定我希望这些如何融合在一起是非常愚蠢的!最好出去看看存在哪些指导。

这让我了解到我学到的东西 - 这是一个链接:

http://wcfsecurityguide.codeplex.com/

我对这篇文章做了几次折扣,因为它有点过时了。但是,我说这实际上是非常相关的,如果你正在开始一个远程关注保护服务的项目,那就去看看吧。第四部分有我需要的一切。

答案 1 :(得分:1)

我们正在使用WCF Web应用程序托管报告系统(我们从Silverlight访问它),因为它使用与我们的MVC应用程序相同的机器密钥 - 我们也可以共享cookie身份验证。

否则,您必须将身份验证票证(自定义或不自定义)发送到您的WCF应用程序。