C# desktop authentication flow example