我有2个网站(ASP .NET MVC3),两者都有自己的身份验证方法。
我们的想法是将网站#1 的用户与网站#2 的用户帐户相关联。
我不知道如何在技术上做到这一点。
我认为关于某种“背景”登录但是如何做到这一点?
我只需要一些正确的解决方案草案。
基本上我们可以将地图表添加到网站#2 中,然后检查 WebSite#1UserId 是否存在,如果没有显示弹出窗口登录/注册网站#2 。
但如果我们这样做,即在iframe
那么它会起作用吗?因此,当第一次登录通过“正常”流程时,我们能够同时登录到两个网站,并且我们有一些额外的代码将在Mapped Table中登录UserID并实现“后台”登录第二个网站......
甚至我必须创建代码来使用网站#2 的 cookie ?
所以我不确定正确的解决方案。但是我看到了
一个。使用隐藏的iframe
并模拟“后台”登录。
B中。在 WebSite#1 的登录方法中使用纯C#代码并使用 SOMEHOW (POST,GET,...?)登录网站#2 并访问其所有网页。
谢谢!
P.S。是否可以使用此解决方案Dummy form to submit like the real login form + http://msdn.microsoft.com/en-us/library/bb310861.aspx
还有另一个解决方案Login to website, via C#
答案 0 :(得分:1)
即使您使用的是自定义身份验证,只要两个网站都可以共享Cookie,您就可以根据其他网站的身份验证方案自定义MVC进行登录。你可以建立this answer on StackOverflow。同样,这要求两个网站都可以共享cookie,这意味着它们要么位于同一个子域中,要么直接位于域上(根本没有子域),或它们位于不同的子域上域和 cookie在域本身上设置为通配符。
如果这对您不起作用,那么您必须在所有网站之间创建一种联盟网络。想想谷歌如何登录。所有身份验证都通过accounts.google.com进行。如果网络上的某个网站(例如youtube.com)需要对您进行身份验证,则会将您重定向到accounts.google.com。在那里,您登录,然后您将被重定向回原始站点,并带有一些识别令牌,表明您已登录并授予该站点能够获取您的用户详细信息。在此方案中,网站youtube.com使用该令牌从accounts.google.com请求您的用户信息,最有可能通过后端API,并且您看起来像是在YouTube上登录,实际上您不是。 good primer on the methodology here中有second article in the series以及示例代码。