我正在遷移使用Active Federation和WIF 3.5以使用.Net 4.5的ASP.Net站點。 Windows Identity Foundation(WIF 3.5)的功能現已完全集成到.Net 4.5框架中。如何訪問WIF 4.5中的SecurityTokenHandlers集合?
由於類已經轉移到三個不同的名稱空間,所以主要是機械翻譯。我遇到問題的部分是將STS發行的GenericXmlSecurityToken
翻譯成索賠負責人,致電SessionAuthenticationModule.WriteSessionTokenToCookie
。該文檔缺乏,我只需要找到WIF 4.5的方式來訪問FederatedAuthentication.ServiceConfiguration.SecurityTokenHandlers
這裏是WIF 3.5代碼無法編譯WIF 4.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);
'FederatedAuthentication.FederationConfiguration.IdentityConfiguration.SecurityTokenHandlers' - 什麼是***命名空間***和*** ***組裝? – Kiquenet
@Kiquenet'System.IdentityModel.Services',它是一個獨立的程序集 –