Cookies 跨不同域的SSO

Cookies 跨不同域的SSO,cookies,asp.net-membership,membership,single-sign-on,sqlmembershipprovider,Cookies,Asp.net Membership,Membership,Single Sign On,Sqlmembershipprovider,如何跨域实现单点登录? 我有两个或多个域,我希望所有域都使用SqlMembershipProvider(ASP.NET 2.0成员数据库)通过一台服务器进行身份验证 我有一个域foo.com,它承载asp.net成员数据库,还有一个域bar.com,它希望通过foo.com进行身份验证。 我在互联网上找到了很多关于不同应用程序的文章,但在同一个域中,但在不同的域中,我没有找到一篇完整的文章来描述这个循环,我看到一些使用FormsAuthenticationTicket类或FormsAuthent

如何跨域实现单点登录? 我有两个或多个域,我希望所有域都使用SqlMembershipProvider(ASP.NET 2.0成员数据库)通过一台服务器进行身份验证 我有一个域foo.com,它承载asp.net成员数据库,还有一个域bar.com,它希望通过foo.com进行身份验证。 我在互联网上找到了很多关于不同应用程序的文章,但在同一个域中,但在不同的域中,我没有找到一篇完整的文章来描述这个循环,我看到一些使用FormsAuthenticationTicket类或FormsAuthentication类。我知道web.config中的machineKey应该是相同的。我认为让foo.com在认证后复制认证cookie并将cookie的域从foo.com更改为bar.com很容易,但我发现我无法控制其他域cookie! 那么,有没有办法让它发挥作用呢

谢谢大家,大家好,,
艾哈迈德这不是一个容易的问题,但我可以给你一些提示

为了使用允许匿名访问或要求用户登录的ASP.NET web.config设置,您需要创建一个钩住HttpApplication.EndRequest的模块,并检查HTTP错误401(这意味着需要身份验证)。
重置错误代码并重定向到单一登录站点。在这里你可以像往常一样登录

现在最困难的部分开始了:您需要以安全的方式通过网络将用户凭据传输到另一台服务器。您可以使用对称加密和共享密钥,或者通过非对称加密交换密钥来实现这一点


另一端的HttpModule现在从登录站点接收重定向,检查登录票证是否有效,并替换HttpContext.User(如果存在现有用户,请确保封装现有用户,以便将IsInRole调用路由到该IPrincipal).

您能给我一个关于如何处理来自HttpModule的HTTP状态代码的示例吗?我仍然想使用普通asp.net成员身份(aspnetdb)对用户进行身份验证?还有一个问题,asp.net中的哪个部分正在处理重定向到登录页面,并将referer to ReturnUrl查询字符串添加为相对路径而不是完整路径,我想处理它以开始重定向到完整路径。还有web服务,我可以通过web服务器进行身份验证吗?怎么做?