Azure ACS弹出窗口或页面重定向,有什么更好的?

时间:2011-09-23 14:30:23

标签: javascript redirect azure popup acs

对于我现在正在做的事情有什么看法,在这种情况下你认为哪种更好。

现在我正在使用Azure ACS构建登录,我想知道哪个更好。

选项1 当用户单击他们想要使用的登录时,它将打开一个弹出窗口,然后他们就可以登录。但是我无法关闭那个弹出窗口。一旦他们登录,我希望关闭弹出窗口并从他们所在的选项卡重定向到另一个页面,但我不确定ACS是否可以实现。

选项2 有页面重定向但是让用户远离网站,这是我真的不想做的事情。

有没有办法让选项1 以我希望它与Azure ACS一起工作的方式工作? 如:

  1. 用户转到我的登录页面
  2. 用户点击Google或Facebook
  3. 使用相应的标志打开弹出窗口
  4. 登录后,弹出窗口关闭
  5. 选项卡用户已重定向到用户页面,我仍然可以在该视图中使用FormCollection对象。
  6. 这是我正在使用的js。

    $(function () {
        $(".signup a").click(function () {
            var sizes = ["width=850,height=500"];
            var url = $(this).attr("class");
            var name = "popUp";
            var size = sizes[0];
    
            window.open(url, name, size);
        });
    });
    

1 个答案:

答案 0 :(得分:2)

在ACS依赖方配置中,您有“返回URL”配置。此URL是ACS将发布您的安全令牌的URL。或者换句话说,一旦用户使用身份提供者登录,最终的重定向位置。

因此,您需要做的是将返回网址设置为:https://mysite/loggedin

在登录页面/视图中重新加载打开此页面的页面并关闭此页面:

$(function() {
    window.opener.location.reload();
    self.close();
});

一旦ACS重定向到您的站点,WSFam将通过WSSam创建WS Fed会话cookie,一旦您重新加载您的opener页面,您的页面将加载WS Fed cookie,这意味着您将拥有登录用户。 / p>