アクティブ フェデレーションと WIF 3.5 を使用する ASP.Net サイトを .Net 4.5 に移行しています。Windows Identity Foundation (WIF 3.5) の機能は、.Net 4.5 Framework に完全に統合されました。
クラスは 3 つの異なる名前空間に移動したため、ほとんどが機械的な変換の問題です。私が問題を抱えている部分はGenericXmlSecurityToken
、STS によって発行された を への呼び出しのためにクレーム プリンシパルに変換することSessionAuthenticationModule.WriteSessionTokenToCookie
です。ドキュメントが不足しており、WIF 4.5 へのアクセス方法を見つける必要があるだけです。FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers
以下は、WIF 4.5 でコンパイルされない WIF 3.5 コードのスニペットです (簡潔にするために、WSTrust チャネルの作成は省略されています)。
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);