Csharp/C Sharp/Security/SecureString — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:38, 26 мая 2010
MakeReadOnly, RemoveAt
<source lang="csharp">
using System; using System.Security; using System.Diagnostics; class MainClass {
public static SecureString ReadString() { SecureString str = new SecureString(); ConsoleKeyInfo nextChar = Console.ReadKey(true); while (nextChar.Key != ConsoleKey.Enter) { if (nextChar.Key == ConsoleKey.Backspace) { if (str.Length > 0) { str.RemoveAt(str.Length - 1); Console.Write(nextChar.KeyChar+" " +nextChar.KeyChar); } else { Console.Beep(); } } else { str.AppendChar(nextChar.KeyChar); Console.Write("*"); } nextChar = Console.ReadKey(true); } str.MakeReadOnly(); return str; } public static void Main() { string user = "user1"; Console.Write("Enter the user"s password: "); using (SecureString pword = ReadString()) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "notepad.exe"; startInfo.UserName = user; startInfo.Password = pword; startInfo.UseShellExecute = false; using (Process process = new Process()) { process.StartInfo = startInfo; try { process.Start(); } catch (Exception ex) { Console.WriteLine("\n\nCould not start Notepad process."); Console.WriteLine(ex); } } } }
}
</source>