Exemple #1
0
        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);
        }