2010-05-09 126 views
8

我们正在尝试使用ASP.NET MVC构建一个跨域单点登录解决方案。单点登录ASP.NET MVC

任何现有的解决方案或教程可用?

+1

服务器都可以互相交谈或者为此事到同一个数据库的域部分,如果是这样的解决方案是非常简单 – 2010-05-09 12:00:34

+0

哎 - 是啊www.example.com - 是一个带有DB的单一网站,DB在所有登录中都很常见,所以它基本上只是“远程”网站必须使用www.example.com等进行验证 – Mike 2010-05-09 13:02:19

回答

10

如果你的Web应用程序是同一台服务器同一域上那么所有你需要做的是确保该的validationKey和加密密钥是在web配置(machineKey中)是相同的。

在你的榜样,你将需要身份验证票证追加到查询字符串,运回其他领域,例如:

public void Login(string userName, string password) 
{ 
    if(AuthenticateUser(userName,password)) 
    { 
     Response.Redirect(String.format("{0}?{1}={2}"), 
      Request.QueryString["ReturnUrl"], 
      FormsAuthentication.FormsCookieName, 
      FormsAuthentication.GetAuthCookie(userName, false).Value)); 
    } 
} 

在本地应用程序,您必须启用Cookie的Forms身份验证并通过设置enableCrossAppRedirect允许经过身份验证的用户来自外部应用程序。

​​

注:

  1. 又见FormsAuthentication.RedirectFromLoginPage - http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx

  2. 在我的情况RETURNURL失去网址:(