public SamlTokenData GenerateDisplayName(SamlTokenData samlTokenData) { if (samlTokenData == null) { return(null); } if (!string.IsNullOrWhiteSpace(samlTokenData.CommonName) && !Override) { return(samlTokenData); } var displayName = string.Empty; if (DisplayNameAttribute.Contains("}")) { var displayNameParts = DisplayNameAttribute.Split('{', '}'); bool foundAttribute = false; string templatedDisplayName = string.Empty; foreach (var displayNamePart in displayNameParts) { if (DisplayNameAttribute.Contains(string.Concat("{", displayNamePart, "}"))) { var attribute = samlTokenData.GetAttribute(displayNamePart); if (!string.IsNullOrEmpty(attribute)) { foundAttribute = true; templatedDisplayName = templatedDisplayName + attribute; } } else { templatedDisplayName = templatedDisplayName + displayNamePart; } } if (foundAttribute) //only use this display name if we managed to find at least one saml attribute { displayName = templatedDisplayName; } } else { displayName = samlTokenData.GetAttribute(DisplayNameAttribute); } if (!string.IsNullOrEmpty(displayName)) { samlTokenData.CommonName = displayName; } return(samlTokenData); }