public ICredentials GetCredentials (Uri uri, IWebProxy proxy, CredentialType credentialType, bool retrying)
		{
			if (uri == null)
				throw new ArgumentNullException ("uri");

			var form = new PlaceholderForm (credentialType, uri, null);
			var result = GdkWin32.RunModalWin32Form (form, IdeApp.Workbench.RootWindow);
			return result ? new NetworkCredential (form.Username, form.Password, form.Domain) : null;
		}
		static ICredentials GetCredentialsFromUser (Uri uri, IWebProxy proxy, CredentialType credentialType)
		{
			NetworkCredential result = null;

			Runtime.RunInMainThread (() => {
				var form = new PlaceholderForm (credentialType, uri, null);
				if (GdkWin32.RunModalWin32Form (form, IdeApp.Workbench.RootWindow))
					result = new NetworkCredential (form.Username, form.Password, form.Domain);
			}).Wait ();

			// store the obtained credentials in the auth store
			// but don't store for the root url since it may have other credentials
			if (result != null)
				PasswordService.AddWebUserNameAndPassword (uri, result.UserName, result.Password);

			return result;
		}
        public ICredentials GetCredentials(Uri uri, IWebProxy proxy, CredentialType credentialType, ICredentials existingCredential, bool retrying)
        {
            if (uri == null)
            {
                throw new ArgumentNullException("uri");
            }

            NetworkCredential currentCredentials = null;

            if (existingCredential != null)
            {
                currentCredentials = Utility.GetCredentialsForUriFromICredentials(uri, existingCredential);
            }

            var form   = new PlaceholderForm(credentialType, uri, currentCredentials);
            var result = GdkWin32.RunModalWin32Form(form, IdeApp.Workbench.RootWindow);

            return(result ? new NetworkCredential(form.Username, form.Password, form.Domain) : null);
        }
        static ICredentials GetCredentialsFromUser(Uri uri, IWebProxy proxy, CredentialType credentialType)
        {
            NetworkCredential result = null;

            Runtime.RunInMainThread(() => {
                var form = new PlaceholderForm(credentialType, uri, null);
                if (GdkWin32.RunModalWin32Form(form, IdeApp.Workbench.RootWindow))
                {
                    result = new NetworkCredential(form.Username, form.Password, form.Domain);
                }
            }).Wait();

            // store the obtained credentials in the auth store
            // but don't store for the root url since it may have other credentials
            if (result != null)
            {
                PasswordService.AddWebUserNameAndPassword(uri, result.UserName, result.Password);
            }

            return(result);
        }