0

我正在构建一组基于 MVC 4 的服务。它们都应该是同一个身份验证系统的一部分。目前,我有一个单独的项目来处理所有模型,包括创建新的 MVC 4 应用程序时默认获得的表单身份验证。

现在,我想制作一个用于登录我们的云服务的工具栏,并且这个工具栏必须以可以导入我们其他服务的方式制作。使用此工具栏登录应该会登录到我们所有的服务,这些服务分为不同的 MVC 应用程序。因此,在浏览“service1”然后转到“service2”时登录,您应该仍然使用同一用户登录。

谁能在这里指出我正确的方向?我应该为这个工具栏制作一个单独的 MVC 应用程序,并以某种方式在我的所有其他项目中引用它吗?我应该将我的控制器导出到一个单独的项目中并使用它们吗?我不确定这里的最佳做法是什么,也不确定在哪里可以找到我需要的关于此事的信息。

4

2 回答 2

1

由于您将在不同域上托管您的应用程序,因此您可以通过 Stack Exchange 网络实现一些单点登录机制:https ://meta.stackexchange.com/questions/64260/how-does-sos-新的自动登录功能工作/64274#64274

于 2012-07-26T16:01:41.620 回答
0

不同的域意味着您将无法共享表单 cookie。您应该学习如何使用一种企业单点登录协议——使用公认的协议意味着您可以轻松地集成其他应用程序,即使它们是用不同的技术开发的(大多数开发环境都支持标准化协议)。

可能的候选人是:

  • OAuth2 协议。这是一个受人尊敬的协议,因为谷歌、LiveID、Facebook、Twitter 和其他人都支持它。要构建 OAuth2 服务器,您将需要像 DotNetOpenAuth 这样的框架。

  • WS-联邦。在 .NET 世界中得到了很多关注,因为我们获得了 Windows Identity Foundation 框架,它允许您创建 WS-Federation 服务器和客户端。

无论如何,我的建议是现在就投入你的时间,因为这将在未来得到很好的回报。

于 2012-07-26T16:10:30.653 回答