Show dialog only once. Other calls should bring dialog to front, but otherwise not have a result
Shout in the dark, really...

public class DialogService : IDialogService
{
    private static readonly ConcurrentQueue&lt;AuthenticationDialog&gt; DialogQueue = 
        new ConcurrentQueue&lt;AuthenticationDialog&gt;();
    private static volatile bool _isShowing;

    public DialogService(IServiceProvider serviceProvider)
    {
        DialogQueue.Enqueue(serviceProvider.GetService&lt;AuthenticationDialog&gt;());
    }

    public bool? ShowAuthenticationDialog()
    {
        AuthenticationDialog dialog;
        DialogQueue.TryDequeue(out dialog);

        if (dialog == null)
            return null;

        if (_isShowing)
        {
            dialog.Activate();
            return null;
        }

        _isShowing = true;
        bool? result = null;

        try
        {
            result = dialog.ShowDialog();
        }
        catch 
        {}
        finally
        {
            _isShowing = false;
        }

        return result;
    }
}