跨域cookie只能由创建它的原始服务器重新发布吗?

时间:2015-09-16 15:48:42

标签: asp.net cookies login cross-domain

我们正在使用asp.net mvc 5.2和wif authentification创建多个Web应用程序。其中一个Web应用程序是登录应用程序,它通过创建跨域cookie来验证其他应用程序的所有用户。登录本身与跨域cookie一起工作很好,问题是当我想在其他网络应用程序(而不是登录应用程序)上重新发布cookie以启用滑动过期时

我在其他服务(不是登录服务)上启用了滑动过期,如下所示:

        protected void SessionAuthenticationModule_SessionSecurityTokenReceived(object sender, SessionSecurityTokenReceivedEventArgs e)
    {
        DateTime now = DateTime.UtcNow;
        DateTime validFrom = e.SessionToken.ValidFrom;
        DateTime validTo = e.SessionToken.ValidTo;

        var isNotExpired = now < validTo;
        var half = validFrom.AddMinutes(Constants.COOKIE_LIFETIME_MINUTES / 2);
        var isOverHalftime = now > half;

        if (isNotExpired && isOverHalftime)
        {
            SessionAuthenticationModule sam = sender as SessionAuthenticationModule;
            e.SessionToken = sam.CreateSessionSecurityToken(e.SessionToken.ClaimsPrincipal, e.SessionToken.Context,
            now, now.AddMinutes(Constants.COOKIE_LIFETIME_MINUTES), e.SessionToken.IsPersistent);
            e.ReissueCookie = true;
        }
    }

此代码后不会重新发布cookie。

当我在登录服务本身上运行此代码时,将重新发布cookie。

我缺少什么? cookie只能由创建它们的服务器重新发布吗?不幸的是,我没有在网上找到任何信息

0 个答案:

没有答案