我们正在使用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只能由创建它们的服务器重新发布吗?不幸的是,我没有在网上找到任何信息