我有两个网站(ASP .NET MVC3),两者都有自己的认证方法。
其想法是将来自网站#1的用户链接到网站#2的用户帐户。
我不知道技术上该怎么做。
我想的是一种“背景”登录,但它是如何做到的呢?
我只需要一些可能的正确解决方案草案。
基本上,我们可以将映射表添加到网站#2中,并检查是否存在,如果没有,则显示用于Website#2登录/注册的弹出窗口。
但是如果我们要这样做,即在iframe
中,那么它会起作用吗?因此,当第一次登录通过“正常”流时,我们可以同时登录两个网站,并且我们有一些额外的代码来登录映射表中的UserID,并实现第二个网站的“背景”登录.
甚至我也必须创建代码来使用cookie of Website#2。
因此,我不能确定正确的解决办法。但我看到了
使用隐藏的iframe
并模拟“背景”登录。
B.在WebSite#1的登录方法中使用纯WebSite#1代码并以某种方式使用(POST、GET、. ?)登录到Website#2并访问其所有页面。
谢谢!
可以使用这个解决方案提交虚拟表单,就像真实的登录表单一样 + http://msdn.microsoft.com/en-us/library/bb310861.aspx吗?
还有另一个解决方案-- 通过C#登录到网站
发布于 2013-09-25 19:32:40
即使您使用自定义auth,只要两个网站都可以共享cookie,也可以根据其他站点的身份验证方案定制MVC登录。您可以在这个答案在StackOverflow上的基础上构建。同样,这要求两个网站都可以共享cookie,这意味着它们要么位于同一个子域,要么都直接位于域上(根本没有子域),或者它们位于同一域上的不同子域上,域本身上的cookie设置为通配符。
如果这对你不起作用,那么你必须在所有网站之间建立一种联系网络。想想谷歌是如何登录的。所有身份验证都通过accounts.google.com进行。如果网络上的某个站点(比如youtube.com )需要对您进行身份验证,它会将您重定向到accounts.google.com。在那里,您登录,然后重定向回原始站点,带有一些标识令牌,指示您已登录,并授予该站点获取用户详细信息的能力。在这个场景中,站点youtube.com使用该令牌从accounts.google.com (很可能通过后端API )请求用户信息,而实际上您没有登录到YouTube上。在这里对方法论有很好的入门中有一个本系列第二篇文章和样例代码。
https://stackoverflow.com/questions/19009246
复制相似问题