using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Security.Principal; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace NSspi { public class Program { public static void Main( string[] args ) { IdentTest(); } private static void IdentTest() { WindowsIdentity current = WindowsIdentity.GetCurrent( TokenAccessLevels.MaximumAllowed ); Stream stream = new MemoryStream(); StringWriter writer = new StringWriter(); ISerializable serializable = current; SerializationInfo info = new SerializationInfo( current.GetType(), new FormatterConverter() ); StreamingContext streamingContext = new StreamingContext(); serializable.GetObjectData( info, streamingContext ); WindowsIdentity newId = new WindowsIdentity( info, streamingContext ); } private static void CredTest() { Credential cred = null; try { cred = new Credential( SecurityPackage.Negotiate, CredentialType.Client ); string name = cred.Name; Console.Out.WriteLine( name ); Console.Out.Flush(); } finally { if( cred != null ) { cred.Dispose(); } } } } }