INTRODUCTION

Progress DataDirect has released new version of their ADO.NET data provider for OpenAccess SDK 7.2 last month. With other new features this ADO.NET connectivity has added support for new .NET Frameworks like .NET Framework 4.0 and .NET framework 4.5.

During some post release verification we discovered that Applications targeting .NET Framework 2.0 are able to successfully use the Kerberos Connectivity with the latest OpenAccess ADO.NET 7.2 Provider, But Applications targeting .NET Framework 4.0 or above will face issue in using Kerberos Authentication. The user will see bellow error while attempting the Kerberos Authentication.

The DDTek.OpenAccessHelper assembly with assembly version number of 7.2.0.0 failed to load.

This article will explain why this issue occurs; and what customer can do to resolve this error.

PROBLEM DESCRIPTION

During Kerberos Authentication ADO.NET provider uses Native Windows Calls to generate the Kerberos security token. As these calls are unmanaged code; we separate them out this unmanaged code from the core providers so that we can keep the core providers DDTek.OpenAccess.dll 100% managed. We call this unmanaged component as Helper component (DDTek.OpenAccessHelper.dll).

In 7.2 releases we are deploying 32bit and 64bit versions of DDTek.OpenAccessHelper.dll which are targeting to .NET Framework 2.0. During the .NET Framework 4.0 release; Microsoft has made drastic changes in the Assembly Metadata and because of them applications targeting .NET Framework 4.0 are not able to load these DDTek.OpenAccessHelper.dll components which target .NET Framework 2.0. And hence throw the above mentioned error.

HOW TO RESOLVE THIS ISSUE

If you are facing this issue; Please do following steps to get Kerberos connectivity working with you applications.

  • Download attached zip file which contains the helper component for .NET Framework 4.0 and above for both 32bit and 64bit architectures.
  • Extract the contents of this file in your installation directory of the ADO.NET client for OpenAccess SDK (usually: C:\Program Files\Progress\DataDirect\oaadonet72); so that it will create folder structure like,
    1. Net20
      • 32bit
      • 64bit
    2. Net40
      • 32bit
      • 64bit
  • If you have not installed OpenAccess SDK or the ADO.NET client and OpenAccess ADO.NET client for OpenAccess SDK 7.2 so far, please do so.
  • Please refer the OpenAccess SDK documentation for the steps required to enable the Kerberos authentication
  • If you are using 32bit machine; use following command from your installation directory to GAC the 32bit Helper component using Visual Studio Developer command prompt.
  1. gacutil /if net40\32bit\DDTek.OpenAccessHelper.dll
  • If you are using 64 bit machine; use following command from your installation directory to GAC both the 32bit and 64bit Helper component using Visual Studio Developer command prompt.
    1. gacutil /if net40\32bit\DDTek.OpenAccessHelper.dll
    2. gacutil /if net40\64bit\DDTek.OpenAccessHelper.dll
  • Once you complete these steps; Just restart your application and use the safety of Kerberos in you connections with this cool OpenAccess SDK product service.

Happy Programming!!!