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

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

Called when a client tries to change its user identity.
private SessionManager_ImpersonateUser ( Session session, ImpersonateEventArgs args ) : void
session Session
args Opc.Ua.Server.ImpersonateEventArgs
Результат void
        private void SessionManager_ImpersonateUser(Session session, ImpersonateEventArgs args)
        {
            // check for a WSS token.
            IssuedIdentityToken wssToken = args.NewIdentity as IssuedIdentityToken;

            if (wssToken != null)
            {
                SecurityToken samlToken = ParseAndVerifySamlToken(wssToken.DecryptedTokenData);
                args.Identity = new UserIdentity(samlToken);
                Utils.Trace("SAML Token Accepted: {0}", args.Identity.DisplayName);
                return;
            }

            // check for a user name token.
            UserNameIdentityToken userNameToken = args.NewIdentity as UserNameIdentityToken;
            
            if (userNameToken != null)
            {
                VerifyPassword(userNameToken.UserName, userNameToken.DecryptedPassword);
                args.Identity = new UserIdentity(userNameToken);
                Utils.Trace("UserName Token Accepted: {0}", args.Identity.DisplayName);
                return;
            }

            // check for x509 user token.
            X509IdentityToken x509Token = args.NewIdentity as X509IdentityToken;
            
            if (userNameToken != null)
            {
                VerifyCertificate(x509Token.Certificate);
                args.Identity = new UserIdentity(x509Token);
                Utils.Trace("X509 Token Accepted: {0}", args.Identity.DisplayName);
                return;
            }
        }