|
Listing 6-25 extracted from chapter
Security
Listing 6-24< > Listing 6-26
This listing can be compiled with the command line: csc.exe /target:exe Example_6_25.cs Errors: 0 Warnings: 0
Example_6_25.cs
using System;
using System.Security;
using System.Runtime.InteropServices;
class Program {
static void Main() {
SecureString pwd = new SecureString();
ConsoleKeyInfo nextKey = Console.ReadKey( true );
while(nextKey.Key != ConsoleKey.Enter) {
pwd.AppendChar( nextKey.KeyChar );
Console.Write( "*" );
nextKey = Console.ReadKey( true );
}
Console.WriteLine();
pwd.MakeReadOnly();
IntPtr bstr = Marshal.SecureStringToBSTR(pwd);
// Get an instance of the Sring class
// only for the example needs.
try{ Console.WriteLine( Marshal.PtrToStringAuto(bstr) ); }
finally{ Marshal.ZeroFreeBSTR(bstr); }
}
}
Copyright Patrick Smacchia 2006 2007
|