Skip to content

Feature: SqlAuthenticationProvider API change proposal #3728

@cheenamalhotra

Description

@cheenamalhotra

Below are proposals to revamp SQL Authentication Provider APIs, captured from PR #3680 by @paulmedynski

Provider registration APIs:

  • Make GetProvider() and SetProvider() public on SqlAuthenticationProviderManager. These are the actual implementation of provider management.
  • Deprecate GetProvider() and SetProvider() on SqlAuthenticationProvider. These are management functions that don't belong on the base abstract class used to implement providers.
  • Point to the SqlAuthenticationProviderManager methods as the replacement. Removing these methods will eliminate fragile runtime reflection from the MDS.Abstractions package.

Authentication Timeout APIs:

  • Add an AuthenticationTimeout property to SqlAuthenticationParameter. This is a more accurate name than the existing ConnectionTimeout property.
  • Deprecate SqlAuthenticationParameter's ConnectionTimeout property. Implement it in terms of AuthenticationTimeout.
  • Direct callers to AuthenticationTimeout property.
  • Rename SqlAuthenticationParameter's ConnectionTimeout constructor argument. We can't actually do this since C# doesn't provide a mechanism to maintain backwards compatibility with callers that are supplying the timeout value by name 🙁
  • Document the intention of the connectionTimeout argument as clearly as possible.

Designers: @saurabh500 and @paulmedynski

Metadata

Metadata

Assignees

No one assigned

    Labels

    Breaking Change 🔨Issues/PRs that are related with breaking API changes in the driver.Enhancement 💡Issues that are feature requests for the drivers we maintain.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions