Exemplo n.º 1
0
        protected void SetFromObjectFieldElement(object target, IHeterogeneousConfigurationElement heterogeneousElem)
        {
            ObjectFieldElement value        = (ObjectFieldElement)heterogeneousElem;
            PropertyInfo       propertyInfo = target.GetType().GetProperty(value.Key);

            if (propertyInfo != null)
            {
                object result = ExtractObjectFieldValue(value);
                propertyInfo.SetValue(target, Convert.ChangeType(result, propertyInfo.PropertyType));
            }
        }
Exemplo n.º 2
0
        public void BaseRefreshIdentitiesInBuilding()
        {
            HeterogeneousCollection identities = BIASettingsReader.BIANetSection?.Authentication?.Identities;

            if (identities != null && identities.Count > 0)
            {
                foreach (IHeterogeneousConfigurationElement heterogeneousElem in identities)
                {
                    if (heterogeneousElem is ValueElement)
                    {
                        SetFromValueElement(identitiesInBuilding, heterogeneousElem);
                    }
                    else if (heterogeneousElem is WindowsIdentityElement)
                    {
                        WindowsIdentityElement value = (WindowsIdentityElement)heterogeneousElem;
                        if (Identity != null && Identity.IsAuthenticated && value.IdentityField != null)
                        {
                            identitiesInBuilding.Set(value.Key, PreparePrincipalUserName(Identity, value.IdentityField, value.RemoveDomain), userInfoContainer);
                        }
                    }
                    else if (heterogeneousElem is ObjectFieldElement)
                    {
                        ObjectFieldElement value  = (ObjectFieldElement)heterogeneousElem;
                        object             result = ExtractObjectFieldValue(value);
                        if (result != null)
                        {
                            identitiesInBuilding.Set(value.Key, result.ToString(), userInfoContainer);
                        }
                    }
                    else if (heterogeneousElem.TagName == "CustomCode")
                    {
                        if (SetFromCustomCodeElement(identitiesInBuilding, heterogeneousElem))
                        {
                            CustomCodeIdentities(identitiesInBuilding);
                        }
                    }
                    else if (heterogeneousElem is ClientCertificateInHeaderCollection)
                    {
                    }
                    else
                    {
                        throw new Exception("Tag " + heterogeneousElem.TagName + " not implemented for Authentication > Identities");
                    }
                }
            }
        }
Exemplo n.º 3
0
 protected virtual object ExtractObjectFieldValue(ObjectFieldElement value)
 {
     return(GetObjectValue(this, value.Source));
 }