예제 #1
0
 /// <inheritdoc/>
 protected override NetworkCredential Prompt(string target, WindowsCredentialsFlags flags)
 {
     if (flags.HasFlag(WindowsCredentialsFlags.IncorrectPassword))
     {
         Log.Error(string.Format(Resources.InvalidCredentials, target));
     }
     return(WindowsCredentials.PromptCli(target, flags));
 }
예제 #2
0
        public static NetworkCredential PromptDialog([NotNull] string target, WindowsCredentialsFlags flags, [CanBeNull] string title = null, [CanBeNull] string message = null, IntPtr owner = default(IntPtr))
        {
            #region Sanity checks
            if (string.IsNullOrEmpty(target)) throw new ArgumentNullException(nameof(target));
            #endregion

            if (!WindowsUtils.IsWindowsXP) throw new PlatformNotSupportedException();

            var usernameBuffer = new StringBuilder(1000);
            var passwordBuffer = new StringBuilder(1000);

            var credUI = CreateCredUIInfo(owner, title, message);
            bool persist = true;
            int result = NativeMethods.CredUIPromptForCredentials(ref credUI, target, IntPtr.Zero, 0, usernameBuffer, MaxUsernameLength, passwordBuffer, MaxPasswordLength, ref persist, flags);
            HandleResult(result);

            return new NetworkCredential(usernameBuffer.ToString(), passwordBuffer.ToString());
        }
예제 #3
0
        public static NetworkCredential PromptCli([NotNull] string target, WindowsCredentialsFlags flags)
        {
            #region Sanity checks
            if (string.IsNullOrEmpty(target))
            {
                throw new ArgumentNullException(nameof(target));
            }
            #endregion

            if (!WindowsUtils.IsWindowsXP)
            {
                throw new PlatformNotSupportedException();
            }

            var usernameBuffer = new StringBuilder(1000);
            var passwordBuffer = new StringBuilder(1000);

            bool persist = true;
            int  result  = NativeMethods.CredUICmdLinePromptForCredentials(target, IntPtr.Zero, 0, usernameBuffer, MaxUsernameLength, passwordBuffer, MaxPasswordLength, ref persist, flags);
            HandleResult(result);

            return(new NetworkCredential(usernameBuffer.ToString(), passwordBuffer.ToString()));
        }
예제 #4
0
        public static NetworkCredential PromptCli([NotNull] string target, WindowsCredentialsFlags flags)
        {
            #region Sanity checks
            if (string.IsNullOrEmpty(target)) throw new ArgumentNullException(nameof(target));
            #endregion

            if (!WindowsUtils.IsWindowsXP) throw new PlatformNotSupportedException();

            var usernameBuffer = new StringBuilder(1000);
            var passwordBuffer = new StringBuilder(1000);

            bool persist = true;
            int result = NativeMethods.CredUICmdLinePromptForCredentials(target, IntPtr.Zero, 0, usernameBuffer, MaxUsernameLength, passwordBuffer, MaxPasswordLength, ref persist, flags);
            HandleResult(result);

            return new NetworkCredential(usernameBuffer.ToString(), passwordBuffer.ToString());
        }
예제 #5
0
 /// <inheritdoc/>
 protected override NetworkCredential Prompt(string target, WindowsCredentialsFlags flags)
 => WindowsCredentials.PromptDialog(target, flags);
예제 #6
0
 protected abstract NetworkCredential Prompt(string target, WindowsCredentialsFlags flags);
 public static extern int CredUICmdLinePromptForCredentials(string targetName, IntPtr reserved1, int iError, StringBuilder userName, int maxUserName, StringBuilder password, int maxPassword, [MarshalAs(UnmanagedType.Bool)] ref bool pfSave, WindowsCredentialsFlags flags);
예제 #8
0
 public static extern int CredUICmdLinePromptForCredentials(string targetName, IntPtr reserved1, int iError, StringBuilder userName, int maxUserName, StringBuilder password, int maxPassword, [MarshalAs(UnmanagedType.Bool)] ref bool pfSave, WindowsCredentialsFlags flags);
예제 #9
0
 protected abstract NetworkCredential Prompt(string target, WindowsCredentialsFlags flags);
 /// <inheritdoc/>
 protected override NetworkCredential Prompt(string target, WindowsCredentialsFlags flags)
 {
     if (flags.HasFlag(WindowsCredentialsFlags.IncorrectPassword))
         Log.Error(string.Format(Resources.InvalidCredentials, target));
     return WindowsCredentials.PromptCli(target, flags);
 }
 /// <inheritdoc/>
 protected override NetworkCredential Prompt(string target, WindowsCredentialsFlags flags)
 {
     return WindowsCredentials.PromptDialog(target, flags);
 }