Example #1
0
        /// <summary>
        /// Gets the endpoint identity from the configuration file
        /// </summary>
        /// <param name="element"></param>
        /// <returns></returns>
        private EndpointIdentity GetIdentity(IdentityElement element)
        {
            PropertyInformationCollection properties = element.ElementInformation.Properties;
            EndpointIdentity rev = GetEndpointIdentity(element, properties) ??
                                   GetEndpointIdentityByCertificate(element, properties);

            return(rev);
        }
    public bool GetItemElement(int itemLogicID, out IdentityElement itemElement)
    {
        itemElement = null;
        if (!_mItemElementList.TryGetValue(itemLogicID, out itemElement))
        {
            return(false);
        }

        return(true);
    }
        static QualifiedElement AttachName(IDiscriminatedElement element, params string[] names)
        {
            var q = new QualifiedElement(element);

            foreach (var name in names)
            {
                _ = new IdentityElement(q, name);
            }

            return(q);
        }
Example #4
0
        static QualifiedElement AttachName(IDiscriminatedElement target, params string[] names)
        {
            var ret = new QualifiedElement(target);

            foreach (var name in names)
            {
                _ = new IdentityElement(ret, name);
            }

            return(ret);
        }
        static IQualified AttachName(IDiscriminatedElement target, params string[] name)
        {
            var q = new QualifiedElement(target);

            foreach (var s in name)
            {
                _ = new IdentityElement(q, s);
            }

            return(q);
        }
        protected override IEnumerable <(InterfaceElement sample, IDiscriminatedElement errSample)> GenerateErrSample()
        {
            var ns        = new NameSpaceElement(new PhysicalStorage(PathA));
            var q         = AttachName(ns, NameSpaceA);
            var errSample = new IdentityElement(q, "Err");

            var sample = new InterfaceElement(ns, ScopeCategories.Public, false, false);

            AttachName(sample, "Name");

            yield return(sample, errSample);
        }
Example #7
0
        private EndpointIdentity GetIdentity(IdentityElement element)
        {
            EndpointIdentity result = null;
            PropertyInformationCollection properties = element.ElementInformation.Properties;

            if (properties == null)
            {
                throw new ArgumentNullException("获取终结点标识属性错误");
            }
            var propertyInformation = properties["userPrincipalName"];

            if (propertyInformation != null && propertyInformation.ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateUpnIdentity(element.UserPrincipalName.Value));
            }
            var information = properties["servicePrincipalName"];

            if (information != null && information.ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateSpnIdentity(element.ServicePrincipalName.Value));
            }
            var propertyInformation1 = properties["dns"];

            if (propertyInformation1 != null && propertyInformation1.ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateDnsIdentity(element.Dns.Value));
            }
            var information1 = properties["rsa"];

            if (information1 != null && information1.ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateRsaIdentity(element.Rsa.Value));
            }
            var propertyInformation2 = properties["certificate"];

            if (propertyInformation2 != null && propertyInformation2.ValueOrigin == PropertyValueOrigin.Default)
            {
                return(null);
            }
            X509Certificate2Collection x509Certificate2Collection = new X509Certificate2Collection();

            x509Certificate2Collection.Import(Convert.FromBase64String(element.Certificate.EncodedValue));
            if (x509Certificate2Collection.Count == 0)
            {
                throw new InvalidOperationException("UnableToLoadCertificateIdentity");
            }
            X509Certificate2 primaryCertificate = x509Certificate2Collection[0];

            x509Certificate2Collection.RemoveAt(0);
            return(EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, x509Certificate2Collection));
        }
Example #8
0
        protected override IEnumerable <(IIdentity x, IIdentity y, IIdentity z)> GenerateTransitiveSample()
        {
            foreach (var elem in FastEnum.GetValues <IdentityCategories>())
            {
                foreach (var scope in FastEnum.GetValues <ScopeCategories>())
                {
                    var x = new IdentityElement(new QualifiedElement(), scope, elem, scope.ToString() + elem.ToString());
                    var y = new IdentityElement(new QualifiedElement(), scope, elem, scope.ToString() + elem.ToString());
                    var z = new IdentityElement(new QualifiedElement(), scope, elem, scope.ToString() + elem.ToString());

                    yield return(x, y, z);
                }
            }
        }
    public bool GetItemElement(string avatarIconName, out IdentityElement itemElement)
    {
        itemElement = null;
        foreach (IdentityElement identityElement in _mItemElementList.Values)
        {
            if (identityElement.StrIcon == avatarIconName)
            {
                itemElement = identityElement;
                return(true);
            }
        }

        return(false);
    }
Example #10
0
        GenerateLogicallyInEquivalentSample()
        {
            var storage = new PhysicalStorage(PathA);

            var x = new NameSpaceElement(storage);
            var q = new QualifiedElement(x);

            _ = new IdentityElement(q, "Tokeiya3");

            var y = new NameSpaceElement(storage);

            _ = new IdentityElement(new QualifiedElement(y), "tokeiya3");

            yield return(x, y);
        }
        public static IdentityElement CreateCertificateIdentity(
            StoreLocation storeLocation,
            StoreName storeName,
            X509FindType findType,
            string findValue,
            bool isChainIncluded = false)
        {
            var ie = new IdentityElement();

            ie.CertificateReference.StoreLocation   = storeLocation;
            ie.CertificateReference.StoreName       = storeName;
            ie.CertificateReference.X509FindType    = findType;
            ie.CertificateReference.FindValue       = findValue;
            ie.CertificateReference.IsChainIncluded = isChainIncluded;
            return(ie);
        }
Example #12
0
        private EndpointIdentity GetIdentity(IdentityElement element)
        {
            EndpointIdentity identity = null;

            PropertyInformationCollection properties = element.ElementInformation.Properties;

            if (properties["userPrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateUpnIdentity(element.UserPrincipalName.Value));
            }

            if (properties["servicePrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateSpnIdentity(element.ServicePrincipalName.Value));
            }

            if (properties["dns"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateDnsIdentity(element.Dns.Value));
            }

            if (properties["rsa"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateRsaIdentity(element.Rsa.Value));
            }

            if (properties["certificate"].ValueOrigin != PropertyValueOrigin.Default)
            {
                X509Certificate2Collection supportingCertificates = new X509Certificate2Collection();

                supportingCertificates.Import(Convert.FromBase64String(element.Certificate.EncodedValue));

                if (supportingCertificates.Count == 0)
                {
                    throw new InvalidOperationException("UnableToLoadCertificateIdentity");
                }

                X509Certificate2 primaryCertificate = supportingCertificates[0];

                supportingCertificates.RemoveAt(0);

                return(EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, supportingCertificates));
            }

            return(identity);
        }
        protected override IEnumerable <(EnumElement sample, IQualified expected)> GenerateQualifiedNameSample()
        {
            var ns = new NameSpaceElement(new PhysicalStorage(PathA));

            AttachName(ns, NameSpaceA);

            var sample = new EnumElement(ns, ScopeCategories.Public);

            AttachName(sample, "Sample");

            var expected = new QualifiedElement();

            _ = new IdentityElement(expected, ScopeCategories.Public, IdentityCategories.Namespace, NameSpaceA);
            _ = new IdentityElement(expected, ScopeCategories.Public, IdentityCategories.Enum, "Sample");

            yield return(sample, expected);
        }
Example #14
0
        /// <summary>
        /// 得到EndpointIdentity
        /// </summary>
        /// <param name="element"></param>
        /// <param name="properties"></param>
        /// <returns></returns>
        protected virtual EndpointIdentity GetEndpointIdentityByCertificate(IdentityElement element, PropertyInformationCollection properties)
        {
            if (properties["certificate"] != null && properties["certificate"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(null);
            }
            var supportingCertificates = new X509Certificate2Collection();

            supportingCertificates.Import(Convert.FromBase64String(element.Certificate.EncodedValue));
            if (supportingCertificates.Count == 0)
            {
                return(null);
            }
            var primaryCertificate = supportingCertificates[0];

            supportingCertificates.RemoveAt(0);
            return(EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, supportingCertificates));
        }
Example #15
0
        public void OrderedEquivalentTest()
        {
            var x = new QualifiedElement();
            var y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Namespace, "Foo");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Namespace, "Foo");

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Namespace, "Bar");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Namespace, "Hoge");

            x.IsEquivalentTo(y, 1).IsTrue();
            y.IsEquivalentTo(x, 1).IsTrue();

            x.IsEquivalentTo(y, 2).IsFalse();
            y.IsEquivalentTo(x, 2).IsFalse();

            Assert.Throws <ArgumentOutOfRangeException>(() => x.IsEquivalentTo(y, 0));
        }
    private bool LoadItemElement(SecurityElement element, out IdentityElement itemElement)
    {
        itemElement = new IdentityElement();

        string attribute = element.Attribute("Identity_ID");

        if (attribute != null)
        {
            itemElement.nID = StrParser.ParseDecInt(attribute, -1);
        }

        attribute = element.Attribute("Need_Ingot");
        if (attribute != null)
        {
            itemElement.nPay = StrParser.ParseDecInt(attribute, 0);
        }

        attribute = element.Attribute("Identity_Name");
        if (attribute != null)
        {
            itemElement.StrName = StrParser.ParseStr(attribute, "");
        }

        attribute = element.Attribute("Identity_Describe");
        if (attribute != null)
        {
            itemElement.StrDesc = StrParser.ParseStr(attribute, "");
        }

        attribute = element.Attribute("Identity_Icon");
        if (attribute != null)
        {
            itemElement.StrIcon = StrParser.ParseStr(attribute, "");
        }

        if (itemElement.nID <= 100)
        {
            nCount = itemElement.nID;
        }

        return(true);
    }
Example #17
0
 /// <summary>
 /// 得到EndpointIdentity
 /// </summary>
 /// <param name="element"></param>
 /// <param name="properties"></param>
 /// <returns></returns>
 protected virtual EndpointIdentity GetEndpointIdentity(IdentityElement element, PropertyInformationCollection properties)
 {
     if (properties["userPrincipalName"] != null && properties["userPrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
     {
         return(EndpointIdentity.CreateUpnIdentity(element.UserPrincipalName.Value));
     }
     if (properties["servicePrincipalName"] != null && properties["servicePrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
     {
         return(EndpointIdentity.CreateSpnIdentity(element.ServicePrincipalName.Value));
     }
     if (properties["dns"] != null && properties["dns"].ValueOrigin != PropertyValueOrigin.Default)
     {
         return(EndpointIdentity.CreateDnsIdentity(element.Dns.Value));
     }
     if (properties["rsa"] != null && properties["rsa"].ValueOrigin != PropertyValueOrigin.Default)
     {
         return(EndpointIdentity.CreateRsaIdentity(element.Rsa.Value));
     }
     return(null);
 }
Example #18
0
        internal static EndpointAddress GetEnpointAddressWithIdentity(Uri address, IdentityElement idElem)
        {
            if (address == null)
            {
                return(null);
            }

            if (idElem == null)
            {
                return(new EndpointAddress(address));
            }

            if (!string.IsNullOrWhiteSpace(idElem.Certificate?.EncodedValue))
            {
                return(new EndpointAddress(address,
                                           new X509CertificateEndpointIdentity(
                                               new X509Certificate2(Convert.FromBase64String(idElem.Certificate.EncodedValue)))));
            }

            if (!string.IsNullOrWhiteSpace(idElem.Dns?.Value))
            {
                return(new EndpointAddress(address, new DnsEndpointIdentity(idElem.Dns.Value)));
            }

            if (!string.IsNullOrWhiteSpace(idElem.Rsa?.Value))
            {
                return(new EndpointAddress(address, new RsaEndpointIdentity(idElem.Rsa.Value)));
            }

            if (!string.IsNullOrWhiteSpace(idElem.UserPrincipalName?.Value))
            {
                return(new EndpointAddress(address, new UpnEndpointIdentity(idElem.UserPrincipalName.Value)));
            }

            if (!string.IsNullOrWhiteSpace(idElem.ServicePrincipalName?.Value))
            {
                return(new EndpointAddress(address, new SpnEndpointIdentity(idElem.ServicePrincipalName.Value)));
            }

            return(new EndpointAddress(address));
        }
Example #19
0
        /// <summary>
        /// Creates the endpoint identity.
        /// </summary>
        /// <returns></returns>
        public EndpointIdentity CreateEndpointIdentity()
        {
            if (_identity != null)
            {
                return(_identity);
            }

            lock (SyncLock)
            {
                if (_identity != null)
                {
                    return(_identity);
                }

                var element = new IdentityElement();
                Deserialize(element);
                _identity = (EndpointIdentity)_methodLoadIdentity.Invoke(null, new object[] { element });

                return(_identity);
            }
        }
Example #20
0
        GeneratePhysicallyInEqualitySample()
        {
            var x = new NameSpaceElement(new PhysicalStorage(PathA));
            var q = new QualifiedElement(x);

            _ = new IdentityElement(q, "Tokeiya3");

            var y = new NameSpaceElement(new PhysicalStorage(PathA));

            _ = new IdentityElement(new QualifiedElement(y), "tokeiya3");

            yield return(x, y);

            x = new NameSpaceElement(new PhysicalStorage(PathA));
            _ = new IdentityElement(new QualifiedElement(x), "Tokeiya3");

            y = new NameSpaceElement(new PhysicalStorage(PathB));
            _ = new IdentityElement(new QualifiedElement(y), "Tokeiya3");

            yield return(x, y);
        }
Example #21
0
        protected override IEnumerable <(IIdentity x, IIdentity y)> GenerateInEquivalentSample()
        {
            var q = new QualifiedElement();
            var x = new IdentityElement(q, ScopeCategories.Public, IdentityCategories.Namespace, "Hoge");
            var y = new IdentityElement(q, ScopeCategories.Public, IdentityCategories.Namespace, "Hoge");

            yield return(x, y);

            x = new IdentityElement(new QualifiedElement(), ScopeCategories.Public, IdentityCategories.Namespace, "Hoge");
            y = new IdentityElement(new QualifiedElement(), ScopeCategories.Public, IdentityCategories.Class, "Hoge");

            yield return(x, y);

            x = new IdentityElement(new QualifiedElement(), ScopeCategories.Public, IdentityCategories.Class, "Foo");
            y = new IdentityElement(new QualifiedElement(), ScopeCategories.Public, IdentityCategories.Class, "Bar");
            yield return(x, y);

            x = new IdentityElement(new QualifiedElement(), ScopeCategories.Internal, IdentityCategories.Class, "Foo");
            y = new IdentityElement(new QualifiedElement(), ScopeCategories.Public, IdentityCategories.Class, "Foo");
            yield return(x, y);
        }
        private EndpointIdentity method_3(IdentityElement identityElement_0)
        {
            EndpointIdentity endpointIdentity        = null;
            PropertyInformationCollection properties = identityElement_0.ElementInformation.Properties;
            EndpointIdentity result;

            if (properties["userPrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
            {
                result = EndpointIdentity.CreateUpnIdentity(identityElement_0.UserPrincipalName.Value);
            }
            else if (properties["servicePrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
            {
                result = EndpointIdentity.CreateSpnIdentity(identityElement_0.ServicePrincipalName.Value);
            }
            else if (properties["dns"].ValueOrigin != PropertyValueOrigin.Default)
            {
                result = EndpointIdentity.CreateDnsIdentity(identityElement_0.Dns.Value);
            }
            else if (properties["rsa"].ValueOrigin != PropertyValueOrigin.Default)
            {
                result = EndpointIdentity.CreateRsaIdentity(identityElement_0.Rsa.Value);
            }
            else if (properties["certificate"].ValueOrigin != PropertyValueOrigin.Default)
            {
                X509Certificate2Collection x509Certificate2Collection = new X509Certificate2Collection();
                x509Certificate2Collection.Import(Convert.FromBase64String(identityElement_0.Certificate.EncodedValue));
                if (x509Certificate2Collection.Count == 0)
                {
                    throw new InvalidOperationException("UnableToLoadCertificateIdentity");
                }
                X509Certificate2 primaryCertificate = x509Certificate2Collection[0];
                x509Certificate2Collection.RemoveAt(0);
                result = EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, x509Certificate2Collection);
            }
            else
            {
                result = endpointIdentity;
            }
            return(result);
        }
        protected override IEnumerable <(InterfaceElement sample, IQualified expected)> GenerateQualifiedNameSample()
        {
            IDiscriminatedElement parent = new NameSpaceElement(new PhysicalStorage(PathA));

            AttachName(parent, "NameSpace");

            parent = new ClassElement(parent, ScopeCategories.Public, false, false, false, false, false);
            AttachName(parent, "Class");

            var sample = new InterfaceElement(parent, ScopeCategories.Public, false, false);

            AttachName(sample, "ISample");

            var expected = new QualifiedElement();

            _ = new IdentityElement(expected, ScopeCategories.Public, IdentityCategories.Namespace, "NameSpace");
            _ = new IdentityElement(expected, ScopeCategories.Public, IdentityCategories.Class, "Class");
            _ = new IdentityElement(expected, ScopeCategories.Public, IdentityCategories.Interface, "ISample");


            yield return(sample, expected);
        }
Example #24
0
        GenerateDescendantsSample()
        {
            var expected = new List <IDiscriminatedElement>();

            var sample = new NameSpaceElement(new PhysicalStorage(PathA));
            var name   = new QualifiedElement(sample);
            var elem   = new IdentityElement(name, "Tokeiya3");

            expected.Add(name);
            expected.Add(elem);


            var a = new NameSpaceElement(sample);

            name = new QualifiedElement(a);
            elem = new IdentityElement(name, "SharpSourceFinder");

            expected.Add(a);
            expected.Add(name);
            expected.Add(elem);

            yield return(sample, expected);
        }
Example #25
0
        protected override IEnumerable <(IQualified x, IQualified y)> GenerateInEquivalentSample()
        {
            var x = new QualifiedElement();
            var y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Class, "Hoge");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Delegate, "Hoge");
            yield return(x, y);

            x = new QualifiedElement();
            y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Namespace, "Hoge");
            _ = new IdentityElement(y, ScopeCategories.Public, IdentityCategories.Namespace, "hoge");
            yield return(x, y);

            x = new QualifiedElement();
            y = new QualifiedElement();

            _ = new IdentityElement(x, ScopeCategories.Public, IdentityCategories.Class, "Hoge");
            _ = new IdentityElement(y, ScopeCategories.Internal, IdentityCategories.Class, "Hoge");
            yield return(x, y);
        }
Example #26
0
        private EndpointIdentity GetIdentity(
            IdentityElement element)
        {
            EndpointIdentity identity = null;
            PropertyInformationCollection properties = element.ElementInformation.Properties;

            if (properties["userPrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateUpnIdentity(element.UserPrincipalName.Value));
            }
            if (properties["servicePrincipalName"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateSpnIdentity(element.ServicePrincipalName.Value));
            }
            if (properties["dns"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateDnsIdentity(element.Dns.Value));
            }
            if (properties["rsa"].ValueOrigin != PropertyValueOrigin.Default)
            {
                return(EndpointIdentity.CreateRsaIdentity(element.Rsa.Value));
            }
            if (properties["certificate"].ValueOrigin != PropertyValueOrigin.Default)
            {
                X509Certificate2Collection certCollection = new X509Certificate2Collection();
                certCollection.Import(Convert.FromBase64String(element.Certificate.EncodedValue));
                if (certCollection.Count == 0)
                {
                    throw new InvalidOperationException(MigrationToolkitResources.ErrorCannotLoadCertificateIdentity);
                }
                X509Certificate2 primaryCertificate = certCollection[0];
                certCollection.RemoveAt(0);
                return(EndpointIdentity.CreateX509CertificateIdentity(primaryCertificate, certCollection));
            }

            return(identity);
        }
Example #27
0
        GeneratePhysicallyTransitiveSample()
        {
            var x = new NameSpaceElement(new PhysicalStorage(PathA));
            var q = new QualifiedElement(x);

            _ = new IdentityElement(q, "Tokeiya3");
            _ = new IdentityElement(q, "SharpSourceFinder");


            var y = new NameSpaceElement(new PhysicalStorage(PathA));

            q = new QualifiedElement(y);
            _ = new IdentityElement(q, "Tokeiya3");
            _ = new IdentityElement(q, "SharpSourceFinder");


            var z = new NameSpaceElement(new PhysicalStorage(PathA));

            q = new QualifiedElement(z);
            _ = new IdentityElement(q, "Tokeiya3");
            _ = new IdentityElement(q, "SharpSourceFinder");

            yield return(x, y, z);
        }
 private EndpointIdentity GetIdentity(IdentityElement element)
 {
     return(typeof(EndpointIdentity).InvokeMember("LoadIdentity", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Static, null, null, new Object[] { element }) as EndpointIdentity);
 }
Example #29
0
 public Identity()
 {
     element = new IdentityElement("Identity");
 }