/// <summary>Returns the flags for dialog display options.</summary> private CREDUI.FLAGS GetFlags() { CREDUI.FLAGS flags = CREDUI.FLAGS.GENERIC_CREDENTIALS; // GRRRR... can't seem to get this to work... // if (incorrectPassword) flags = flags | CredUI.CREDUI_FLAGS.INCORRECT_PASSWORD; if (AlwaysDisplay) { flags = flags | CREDUI.FLAGS.ALWAYS_SHOW_UI; } if (ExcludeCertificates) { flags = flags | CREDUI.FLAGS.EXCLUDE_CERTIFICATES; } if (KeepName) { flags = flags | CREDUI.FLAGS.KEEP_USERNAME; } if (!Persist) { flags = flags | CREDUI.FLAGS.DO_NOT_PERSIST; } else { flags = flags | CREDUI.FLAGS.EXPECT_CONFIRMATION; if (SaveDisplayed) { flags = flags | CREDUI.FLAGS.SHOW_SAVE_CHECK_BOX; } } return(flags); }
/// <summary>Returns a DialogResult indicating the user action.</summary> /// <param name="owner">The System.Windows.Forms.IWin32Window the dialog will display in front of.</param> /// <remarks>Sets the name, password and SaveChecked accessors to the state of the dialog as it was dismissed by the user.</remarks> private DialogResult ShowDialog(IWin32Window owner) { // set the api call parameters StringBuilder name = new StringBuilder(CREDUI.MAX_USERNAME_LENGTH); name.Append(Name); StringBuilder password = new StringBuilder(CREDUI.MAX_PASSWORD_LENGTH); password.Append(Password); int saveChecked = Convert.ToInt32(SaveChecked); CREDUI.INFO info = GetInfo(owner); CREDUI.FLAGS flags = GetFlags(); // make the api call CREDUI.ReturnCodes code = CREDUI.PromptForCredentials(ref info, Target, IntPtr.Zero, 0, name, CREDUI.MAX_USERNAME_LENGTH, password, CREDUI.MAX_PASSWORD_LENGTH, ref saveChecked, flags); // clean up resources if (Banner != null) { Win32.DeleteObject(info.hbmBanner); } // set the accessors from the api call parameters Name = name.ToString(); Password = password.ToString(); SaveChecked = Convert.ToBoolean(saveChecked); return(GetDialogResult(code)); }
/// <summary>Returns the flags for dialog display options.</summary> private CREDUI.FLAGS GetFlags() { CREDUI.FLAGS flags = CREDUI.FLAGS.GENERIC_CREDENTIALS; if (this.IncorrectPassword) { flags = flags | CREDUI.FLAGS.INCORRECT_PASSWORD; } if (this.AlwaysDisplay) { flags = flags | CREDUI.FLAGS.ALWAYS_SHOW_UI; } if (this.ExcludeCertificates) { flags = flags | CREDUI.FLAGS.EXCLUDE_CERTIFICATES; } if (this.Persist) { flags = flags | CREDUI.FLAGS.EXPECT_CONFIRMATION; if (this.SaveDisplayed) { flags = flags | CREDUI.FLAGS.SHOW_SAVE_CHECK_BOX; } else { flags = flags | CREDUI.FLAGS.PERSIST; } } else { flags = flags | CREDUI.FLAGS.DO_NOT_PERSIST; } if (this.KeepName) { flags = flags | CREDUI.FLAGS.KEEP_USERNAME; } return(flags); }