0

我有 2 个网站(ASP .NET MVC3)并且都有自己的身份验证方法。

这个想法是将来自网站 #1的用户与网站 #2的用户帐户链接起来。

我不知道如何在技术上完成。

我认为是关于一种“后台”登录,但如何做到这一点?

我只需要一些可能的正确解决方案草案。

基本上,我们可以将地图表添加到网站#2并检查是否存在WebSite#1UserId,如果不存在则显示弹出窗口以登录/注册网站#2

但是,如果我们这样做,iframe那么它会起作用吗?因此,当第一次登录通过“正常”流程时,我们能够同时登录两个网站,并且我们有一些额外的代码将登录映射表中的 UserID 并实现“后台”登录第二个网站...

或者我什至必须创建代码来使用Website #2的cookie

所以我不确定正确的解决方案。但我看到

A. 使用隐藏iframe和模拟“后台”登录。

B. 在WebSite#1的登录方法中使用纯 C# 代码并使用SOMEHOW (POST,GET,... ?) 登录到Website#2并访问其所有页面。

谢谢!

PS是否可以使用此解决方案虚拟表单像真实登录表单一样提交+ http://msdn.microsoft.com/en-us/library/bb310861.aspx

还有另一种解决方案登录到网站,通过 C#

4

1 回答 1

1

即使您使用自定义身份验证,只要两个网站可以共享 cookie,您就可以自定义 MVC 以根据对方网站的身份验证方案登录。您可以在 StackOverflow 上建立这个答案。同样,这要求两个网站可以共享 cookie,这意味着它们要么都在同一个子域上,要么都直接在域上(根本没有子域),或者它们位于同一域的不同子域上,并且cookie 设置在域本身作为通配符。

如果这对您不起作用,那么您必须在所有站点之间创建一种从属网络。想想谷歌是如何登录的。所有身份验证都通过accounts.google.com。如果网络上的某个站点(例如 youtube.com)需要对您进行身份验证,它会将您重定向到 accounts.google.com。在那里,您登录,然后您将被重定向回原始站点,并带有一些标识令牌,表明您已登录并授予该站点获取您的用户详细信息的能力。在这种情况下,网站 youtube.com 使用该令牌从 accounts.google.com 请求您的用户信息,很可能是通过后端 API,并且您看起来像是在 YouTube 上登录,而实际上您'不是。那里'该系列的第二篇文章

于 2013-09-25T19:32:40.947 回答