コード例 #1
0
        /// <inheritdoc />
        public PamResponse <string> PromptEchoOn(string text)
        {
            Console.Out.Write(text);
            Console.Out.Flush();

            try
            {
                var input = Console.In.ReadLine() ?? string.Empty;
                return(PamResponse <string> .Success(input));
            }
            catch (Exception ex)
            {
                _logger?.LogError(ex, ex.Message);
                return(PamResponse <string> .Error(PamStatus.PAM_AUTH_ERR));
            }
        }
コード例 #2
0
        /// <inheritdoc />
        public PamResponse <string> PromptEchoOff(string text)
        {
            Console.Out.Write(text);
            Console.Out.Flush();

            var conInput = new StringBuilder();
            var finished = false;

            while (!finished)
            {
                var key = Console.ReadKey(true);
                switch (key.Key)
                {
                case ConsoleKey.Backspace:
                    if (conInput.Length != 0)
                    {
                        conInput.Remove(conInput.Length - 1, 1);
                    }
                    break;

                case ConsoleKey.Escape:
                    conInput.Clear();
                    break;

                case ConsoleKey.Enter:
                case ConsoleKey.Execute:
                    finished = true;
                    break;

                default:
                    if (key.KeyChar >= 32)
                    {
                        conInput.Append(key.KeyChar);
                    }
                    break;
                }
            }

            Console.Out.WriteLine();
            var input = conInput.ToString();

            return(PamResponse <string> .Success(input));
        }
コード例 #3
0
 /// <inheritdoc />
 public PamResponse <PamBinaryData> BinaryPrompt(PamBinaryData data)
 {
     _logger?.LogWarning("BinaryPrompt not supported");
     return(PamResponse <PamBinaryData> .Error(PamStatus.PAM_CONV_ERR));
 }
コード例 #4
0
 /// <inheritdoc />
 public PamResponse <string> RadioType(string text)
 {
     _logger?.LogWarning("RadioType not supported, text={0}", text);
     return(PamResponse <string> .Error(PamStatus.PAM_CONV_ERR));
 }
コード例 #5
0
 /// <inheritdoc />
 public PamResponse <string> PromptEchoOn(string text)
 {
     _logger?.LogWarning("PromptEchoOn not supported, text={0}", text);
     return(PamResponse <string> .Error(PamStatus.PAM_CONV_ERR));
 }
コード例 #6
0
 /// <inheritdoc />
 public PamResponse <PamBinaryData> BinaryPrompt(PamBinaryData data)
 {
     return(PamResponse <PamBinaryData> .Error(PamStatus.PAM_CONV_ERR));
 }
コード例 #7
0
 /// <inheritdoc />
 public PamResponse <string> RadioType(string text)
 {
     return(PamResponse <string> .Error(PamStatus.PAM_CONV_ERR));
 }
コード例 #8
0
 /// <inheritdoc />
 public PamResponse <string> PromptEchoOn(string text)
 {
     return(PamResponse <string> .Success(Credential.UserName));
 }
コード例 #9
0
 /// <inheritdoc />
 public PamResponse <string> PromptEchoOff(string text)
 {
     return(PamResponse <string> .Success(Credential.Password));
 }