public void Clear () { if (disposed) throw new ObjectDisposedException ("SecureString"); if (read_only) { throw new InvalidOperationException (Locale.GetText ( "SecureString is read-only.")); } Array.Clear (data, 0, data.Length); length = 0; }
public SecureString ReadLine() { // make sure Ctrl+C can abort editing _mainThread = Thread.CurrentThread; Console.CancelKeyPress += InterruptEdit; SecureString buffer = new SecureString(); var finished = false; while (!finished) { try { finished = ReadKey(buffer); } catch (ThreadAbortException) { // thrown on Ctrl+C Thread.ResetAbort(); buffer.Clear(); buffer = null; break; } } Console.WriteLine(); // reset Ctrl+C handling Console.CancelKeyPress -= InterruptEdit; return buffer; }