Opc.Ua.Sample.SampleServer.CreateUserIdentityValidators C# (CSharp) Метод

CreateUserIdentityValidators() приватный Метод

Creates the objects used to validate the user identity tokens supported by the server.
private CreateUserIdentityValidators ( ApplicationConfiguration configuration ) : void
configuration ApplicationConfiguration
Результат void
        private void CreateUserIdentityValidators(ApplicationConfiguration configuration)
        { 
            for (int ii = 0; ii < configuration.ServerConfiguration.UserTokenPolicies.Count; ii++)
            {
                UserTokenPolicy policy = configuration.ServerConfiguration.UserTokenPolicies[ii];

                // ignore policies without an explicit id.
                if (String.IsNullOrEmpty(policy.PolicyId))
                {
                    continue;
                }
                
                // create a validator for an issued token policy.
                if (policy.TokenType == UserTokenType.IssuedToken)
                {
                    // the name of the element in the configuration file.
                    XmlQualifiedName qname = new XmlQualifiedName(policy.PolicyId, Namespaces.OpcUa);

                    // find the id for the issuer certificate.
                    CertificateIdentifier id = configuration.ParseExtension<CertificateIdentifier>(qname);
                    
                    if (id == null)
                    {
                        Utils.Trace(
                            (int)Utils.TraceMasks.Error, 
                            "Could not load CertificateIdentifier for UserTokenPolicy {0}", 
                            policy.PolicyId);

                        continue;
                    }

                    m_tokenResolver = CreateSecurityTokenResolver(id);
                    m_tokenSerializer = WSSecurityTokenSerializer.DefaultInstance;
               }
                
                // create a validator for a certificate token policy.
                if (policy.TokenType == UserTokenType.Certificate)
                {
                    // the name of the element in the configuration file.
                    XmlQualifiedName qname = new XmlQualifiedName(policy.PolicyId, Namespaces.OpcUa);
                    
                    // find the location of the trusted issuers.
                    CertificateTrustList trustedIssuers = configuration.ParseExtension<CertificateTrustList>(qname);
                    
                    if (trustedIssuers == null)
                    {
                        Utils.Trace(
                            (int)Utils.TraceMasks.Error, 
                            "Could not load CertificateTrustList for UserTokenPolicy {0}", 
                            policy.PolicyId);

                        continue;
                    }

                    // trusts any certificate in the trusted people store.
                    m_certificateValidator = X509CertificateValidator.PeerTrust;
                }
            }
        }