1

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

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

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

选项 2 存在页面内重定向,但这会使用户远离网站,这是我真的不想做的事情。

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

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

这是我正在使用的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);
    });
});
4

1 回答 1

2

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

所以你需要做的是将返回 URL 设置为:https://mysite/loggedin

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

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

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

于 2011-09-24T02:17:13.387 回答