首先,我必须设置IsSessionMode = true以减小 cookie 大小
我需要平衡 2 个 RP 实例我在 2 台具有 RP 实例的不同机器上执行了以下步骤:
1) 订阅ServiceConfigurationCreated 事件
private void WSFederationAuthenticationModule_ServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
{
X509Certificate2 certificate = CertificateUtil.GetCertificate(StoreName.My, StoreLocation.LocalMachine, ConfigHelper.FrontendCertificate);
var sessionTransforms = new List<CookieTransform>(new CookieTransform[]
{
new DeflateCookieTransform(),
new RsaEncryptionCookieTransform(certificate),
new RsaSignatureCookieTransform(certificate)
});
SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
}
2) 带走会话到asp.net 状态服务
问题:
当我尝试登录 STS 时,我得到从 RP 到 STS 的无限重定向
我不明白为什么。令牌存储在 session(IsSessionMode = true) 中。会话由 asp.net 状态服务在 2 个不同的主机之间共享。
问题是什么?我错过了什么?
我想我不明白一些重要的事情。