public void EnsureCredentials()
{
lock (_lock)
{
if (_isEnsuringCredentials)
{
Logging.Client.Warn("Nested credentials resolving detected");
// singleton, once is enough
return;
}
_isEnsuringCredentials = true;
}
try
{
if (string.IsNullOrEmpty(UserName))
{
if (_pwDlg.QueryUser())
{
this.UserName = _pwDlg.Username;
this.Password = _pwDlg.Password;
}
else
{
// No credentials? User pressed cancel? exit application
Environment.Exit(1);
}
}
}
finally
{
lock (_lock) _isEnsuringCredentials = false;
}
}