One of my clients had an application crash, and I traced it due to this error / function, which I cannot explain.
WindowsIdentity.GetCurrent (). Name.GetHashCode () returns this string: -? 2097695743
Yes, thatβs minus, space, question mark, and then the actual hash numbers.
This is the code for a simple console application displaying strange behavior.
static void Main(string[] args) { Console.WriteLine("From String: string name = WindowsIdentity.GetCurrent().Name"); string name = WindowsIdentity.GetCurrent().Name; Console.WriteLine("name: " + name); Console.WriteLine("name.GetHashCode().GetType(): " + name.GetHashCode().GetType()); Console.WriteLine("name.GetHashCode(): " + name.GetHashCode()); Console.WriteLine("name.GetHashCode().ToString(): " + name.GetHashCode().ToString()); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Direct"); Console.WriteLine("WindowsIdentity.GetCurrent().Name: " + WindowsIdentity.GetCurrent().Name); Console.WriteLine("WindowsIdentity.GetCurrent().Name.GetHashCode().GetType(): " + WindowsIdentity.GetCurrent().Name.GetHashCode().GetType()); Console.WriteLine("WindowsIdentity.GetCurrent().Name.GetHashCode(): " + WindowsIdentity.GetCurrent().Name.GetHashCode()); Console.WriteLine("WindowsIdentity.GetCurrent().Name.GetHashCode().ToString(): " + WindowsIdentity.GetCurrent().Name.GetHashCode().ToString()); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Press Enter to continue"); Console.ReadLine(); }
This is the text output:
From String: string name = WindowsIdentity.GetCurrent().Name name: COMMARC\tje name.GetHashCode().GetType(): System.Int32 name.GetHashCode(): - ?2097695743 name.GetHashCode().ToString(): - ?2097695743 Direct WindowsIdentity.GetCurrent().Name: COMMARC\tje WindowsIdentity.GetCurrent().Name.GetHashCode().GetType(): System.Int32 WindowsIdentity.GetCurrent().Name.GetHashCode(): - ?2097695743 WindowsIdentity.GetCurrent().Name.GetHashCode().ToString(): - ?2097695743 Press Enter to continue
And this is the image of the same output:

My question is: how is this possible?
UPDATE: The problem was setting up funky windows for negative numbers.
Mladen prajdic
source share