public void CheckIfCompatibleNodeSettings(object other) { string mismatch = null; PeerSecurityManager that = other as PeerSecurityManager; if (that == null) { mismatch = PeerBindingPropertyNames.Security; } else if (this.authenticationMode != that.authenticationMode) { mismatch = PeerBindingPropertyNames.SecurityDotMode; } else if (this.authenticationMode == PeerAuthenticationMode.None) { return; } else if (!this.tokenManager.Equals(that.tokenManager)) { if (this.credManager != null) { this.credManager.CheckIfCompatible(that.credManager); } else { Fx.Assert(typeof(PeerSecurityCredentialsManager.PeerClientSecurityTokenManager).IsAssignableFrom(tokenManager.GetType()), ""); mismatch = PeerBindingPropertyNames.Credentials; } } if (mismatch != null) { PeerExceptionHelper.ThrowInvalidOperation_PeerConflictingPeerNodeSettings(mismatch); } }