Opc.Ua.Server.Session.UpdateUserIdentity C# (CSharp) Method

UpdateUserIdentity() private method

Updates the user identity.
private UpdateUserIdentity ( UserIdentityToken identityToken, IUserIdentity identity, IUserIdentity effectiveIdentity ) : bool
identityToken UserIdentityToken
identity IUserIdentity
effectiveIdentity IUserIdentity
return bool
        private bool UpdateUserIdentity(
            UserIdentityToken identityToken, 
            IUserIdentity     identity, 
            IUserIdentity     effectiveIdentity)
        {
            if (identityToken == null) throw new ArgumentNullException("identityToken");
                        
            lock (m_lock)
            {
                bool changed = m_effectiveIdentity == null && effectiveIdentity != null;
                
                if (m_effectiveIdentity != null)
                {
                    changed = !m_effectiveIdentity.Equals(effectiveIdentity);
                }
                
                // always save the new identity since it may have additional information that does not affect equality.
                m_identityToken = identityToken;
                m_identity = identity;
                m_effectiveIdentity = effectiveIdentity;
                                                                
                // update diagnostics.
                lock (m_diagnostics)
                {
                    m_securityDiagnostics.ClientUserIdOfSession   = identity.DisplayName;
                    m_securityDiagnostics.AuthenticationMechanism = identity.TokenType.ToString();

                    m_securityDiagnostics.ClientUserIdHistory.Add(identity.DisplayName);
                }

                return changed;
            }
        }