我在这里解释了几个类似的场景,但不是我特别的场景。我想知道是否有人可以告诉我进入哪个方向?
我正在开发两个(以及更晚的)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中进行身份验证/授权,我将无法使用表单身份验证。
在我看到可能的解决方案(我还没有尝试过)时,它们似乎比表单身份验证和单个数据库复杂得多。
任何帮助表示赞赏,
菲尔
答案 0 :(得分:4)
我想我应该用我学到的东西回来(并重新学习)。
首先重新学习的课程 - 不要固定在架构上,然后尝试使其他一切都适合。我修复了.Net,SQL Server,WCF,MVC2,EF4和IIS7。在我的脑海中确定我希望这些如何融合在一起是非常愚蠢的!最好出去看看存在哪些指导。
这让我了解到我学到的东西 - 这是一个链接:
http://wcfsecurityguide.codeplex.com/
我对这篇文章做了几次折扣,因为它有点过时了。但是,我说这实际上是非常相关的,如果你正在开始一个远程关注保护服务的项目,那就去看看吧。第四部分有我需要的一切。
答案 1 :(得分:1)
我们正在使用WCF Web应用程序托管报告系统(我们从Silverlight访问它),因为它使用与我们的MVC应用程序相同的机器密钥 - 我们也可以共享cookie身份验证。
否则,您必须将身份验证票证(自定义或不自定义)发送到您的WCF应用程序。