ADFS from a .Net SDK application

Overview 

In a previous post I examined how to configure RM to authenticate via ADFS when using the native client, in this post I show how to write a .Net SDK application to authenticate via ADFS.

The code

This is the console application I used in the video above

class Program
{

    private static ClientAuthenticationMechanism getAuthenticationMechanism(string dbId)
    {
        foreach (int authenticationMethod in new int[] { 3, 2, 0 })
        {
            if (Database.IsAuthenticationMethodSupported("G1", (ClientAuthenticationMechanism)authenticationMethod))
            {
                return (ClientAuthenticationMechanism)authenticationMethod;
            }
        }

        throw new ApplicationException("No Authentication method found.");
    }


    static void Main(string[] args)
    {
        TrimApplication.TrimBinariesLoadPath = "D:\\82\\x64\\Debug";
        TrimApplication.HasUserInterface = true;
        TrimApplication.Initialize();

        using (Database database = new Database())
        {
            database.Id = "G1";
            database.WorkgroupServerName = "local";
            database.AuthenticationMethod = getAuthenticationMechanism("G1");

            database.Connect();


            Console.WriteLine("{0} - {1}", database.CurrentUser.FullFormattedName, database.CurrentUser.Uri);
        }
    }
}

Warning

As I mention in the video the method Database.IsAuthenticationMethodSupported will only return a valid response if the native client has connected previously from the current machine.  If no connection has been made previously then all authentication mechanisms will return true.