This article is contributed. See the original author and article here.

Our customer is getting the following error message: Application Error System.ArgumentException: Invalid value for key ‘authentication’.    at System.Data.Common.DbConnectionStringBuilderUtil.ConvertToAuthenticationType(String keyword, Object value)    at System.Data.SqlClient.SqlConnectionString.ConvertValueToAuthenticationType()    at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)    at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)    at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)    at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) using in the authentication keyword in the connection string the value Active Directory Managed Identity.


 


Understanding the Error



The error message our customer received, “Application Error System.ArgumentException: Invalid value for key ‘authentication'”, signifies an issue in the connection string’s authentication parameter. This error is generated when the provided value is incompatible or not supported by the current implementation.


 


Limitations of System.Data.SqlClient



System.Data.SqlClient, a widely used library for interacting with SQL Server databases, does not have built-in support for Azure Active Directory Managed Identity authentication. It offers support only for AAD password, integrated, and interactive authentication methods.


 


Introducing Microsoft.Data.SqlClient



To overcome the limitation of System.Data.SqlClient, we recommend migrating to Microsoft.Data.SqlClient. This newer library offers enhanced features and broader support for Azure SQL Database, including seamless integration with Azure Active Directory Managed Identity authentication.


 


Benefits of Migrating to Microsoft.Data.SqlClient



By migrating to Microsoft.Data.SqlClient, our client can unlock several benefits, such as, Full support for Azure Active Directory Managed Identity authentication, ensuring adherence to the latest security standards. Improved performance and reliability due to ongoing updates and optimizations in the library. Access to additional features and functionalities introduced in the latest versions of Microsoft.Data.SqlClient.


 


Migrating to Microsoft.Data.SqlClient: Step-by-Step Guide



  • Assess the codebase and identify all occurrences where System.Data.SqlClient is used for database connections.

  • Replace instances of System.Data.SqlClient with Microsoft.Data.SqlClient in the codebase.

  • Update the connection string to include the necessary configurations for Azure Active Directory Managed Identity authentication.

  • Test the application.


 


 

Brought to you by Dr. Ware, Microsoft Office 365 Silver Partner, Charleston SC.