/// <summary> /// This method converts the received Saml assertion into a .Net principal. /// </summary> internal static IPrincipal InitSaml20Identity(Saml20AssertionLite assertion) { string subjectIdentifier = assertion.Subject.Value; // Create identity var identity = new Saml20Identity(subjectIdentifier, assertion.Attributes); return(new GenericPrincipal(identity, new string[] { })); }
/// <summary> /// This method converts the received Saml assertion into a .Net principal. /// </summary> internal static IPrincipal InitSaml20Identity(Saml20Assertion assertion, IDPEndPoint point) { bool isPersistentPseudonym = assertion.Subject.Format == Saml20Constants.NameIdentifierFormats.Persistent; // Protocol-level support for persistent pseudonyms: If a mapper has been configured, use it here before constructing the principal. string subjectIdentifier = assertion.Subject.Value; if (isPersistentPseudonym && point.PersistentPseudonym != null) { subjectIdentifier = point.PersistentPseudonym.GetMapper().MapIdentity(assertion.Subject); } // Create identity Saml20Identity identity = new Saml20Identity(subjectIdentifier, assertion.Attributes, isPersistentPseudonym ? assertion.Subject.Value : null); return(new GenericPrincipal(identity, new string[] { })); }