2013-04-04 88 views
0

计划:天青#许多网站 - 一个登录(单点登录)

托管在Azure上许多ASP净4.5网站(将被映射到不同的域) - >

如何将之间共享登录网站?

选项1:

使用1个数据库的所有网站 - 如何每个站点的登录名和哪个网站是“主站点”持有

数据库?

选项2:

与额外1个全球数据库中的每个网站的用户使用的数据库(+论坛帖子)

方案3:(组合1 + 2?!)

2数据库, 1,为用户的用户(+论坛帖子)+ 1数据

任一选项,我不知道该怎么做...

我使用CodeFirst Membership Provider

  • 如果我登录到站点A就像登录网站B和ETC(你得到了点)

  • 它是“同一个域”在所有网站坐在天青?

回答

0

使用数据库有额外1个全球数据库中的每个网站的用户

此选项对我来说听起来不错。

您可以使用CAS(中央认证服务),这样您将拥有一个中心点来认证用户。 CAS将被配置为在全局数据库中进行身份验证。

**必须配置每个ASP应用程序以使用CAS进行身份验证。

基本身份验证流程是:

  1. 用户试图访问特定ASP网站。
  2. ASP站点标识用户未通过身份验证并将用户重定向到CAS(在其他网站中运行)。
  3. 用户输入您的登录名和密码。
  4. CAS在全局数据库中检查登录名和密码是否正确。
  5. 如果是,CAS会将用户重定向到特定的ASP站点(步骤1)。

您将需要安装Java和Tomcat(或其他Java应用程序服务器)才能运行CAS。正因为如此,我不知道CAS是否适合您。

http://www.jasig.org/cas

我使用CAS认证针对Active Directory实例。

对不起,我的英语。

+0

我不知道如何制定Azure和CAS ...... – Zakos 2013-04-05 00:24:01

+0

我认为在CAS中使用Azure的唯一选择是使用虚拟机计划(http://www.windowsazure.com/en -us /定价/计算器/?场景=虚拟机)。 – cantoni 2013-04-05 00:39:06

+0

我不喜欢使用Visual Machine,我想简单,使用发布我的网站 – Zakos 2013-04-05 00:40:42

2

您需要使用属于Windows Azure Active Directory的一部分Azure Access Control Service (ACS)

创建一个ACS名称空间,并通过门户将所有应用程序URL作为依赖方添加到此名称空间中。之后,您需要通过提供ACS服务名称空间的url来为每个应用程序添加Visual Studio中的STS引用(在安装Windows Identity Foundation时出现)。

您将不得不添加您需要进行身份验证的自定义身份提供程序。例如,在您的方案中,您可以拥有一个数据库并创建一个使用表单身份验证进行身份验证的自定义STS,并且您必须将此服务的URL用作ACS名称空间中的身份提供程序。您可以选择添加Windows Live,Google,Yahoo和Facebook等默认身份提供程序,以防万一您需要。

对于一些具体步骤请参考本link

有也可在MSDN Code Gallery几个示例代码。