Przeprowadzam migrację witryny ASP.Net, która używa Active Federation i WIF 3.5 do korzystania z .Net 4.5. Funkcjonalność Windows Identity Foundation (WIF 3.5) została w pełni zintegrowana z .Net 4.5 Framework.Jak dostać się do kolekcji SecurityTokenHandlers w WIF 4.5?
Ponieważ klasy przeniosły się do trzech różnych przestrzeni nazw, jest to głównie kwestia mechanicznego tłumaczenia. Część, z którą mam problem, jest tłumaczeniem numeru GenericXmlSecurityToken
wydanego przez STS na Główcę Roszczeń w celu uzyskania połączenia z SessionAuthenticationModule.WriteSessionTokenToCookie
. Dokumentacja brakuje i po prostu trzeba znaleźć drogę WIF 4.5, aby uzyskać dostęp FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers
Oto urywek z WIF 3.5 kodu, który nie kompiluje w WIF 4.5 (tworzenie kanału WSTrust pominięty dla zwięzłość):
var genericToken = channel.Issue(rst) as GenericXmlSecurityToken;
var handlers = FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers;
var token = handlers.ReadToken(new XmlTextReader(new StringReader(genericToken.TokenXml.OuterXml)));
var identity = handlers.ValidateToken(token).First();
var sessionToken = new SessionSecurityToken(ClaimsPrincipal.CreateFromIdentity(identity),
TimeSpan.FromMinutes(20));
FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionToken);
'FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers' - Czym jest przestrzeń nazw *** *** *** i montaż ***? – Kiquenet
@Kiquenet 'System.IdentityModel.Services', który jest osobnym zestawem –