This is an example of a custom request handler that retrieves the database connection string from Web.config.


This example is for ASP.NET and not for ASP.NET Core. ASP.NET Core projects use a appsettings.json file instead of Web.config


using System;

using System.Configuration;

using System.Data.SqlClient;

using Ventura;

using VenturaServer;


namespace AspNetServer

{

    public class CustomRequestHandler : IVenturaRequestHandler

    {

        public void Authenticate(bool is_secure_connection, string username, string password, string databag)

        {


            if (is_secure_connection == false) // SSL is obligated

                throw new Exception("Authentication is not allowed over an open (non-SSL) connection.");


            if (username != "admin" || password != "password")

                throw new Exception("Incorrect username and/or password.");


        }


        public AdoConnector LookupAdoConnector(string remote_connector_name)

        {

            // Read the connection string from Web.config

            ConnectionStringSettings css = ConfigurationManager.ConnectionStrings["DefaultConnection"];


            if (css == null)

                throw new Exception("Connection string 'DefaultConnection' not found in Web.config");


            return new AdoConnector(SqlClientFactory.Instance, css.ConnectionString);

        }


    }

}


An example of a Web.config with the DefaultConnection entry in it:


<?xml version="1.0" encoding="utf-8"?>

<configuration>

  <connectionStrings>

    <add name="DefaultConnection" connectionString="Server=(local);Initial Catalog=AdventureWorks2017;Integrated Security=SSPI;Max Pool Size=250;Connect Timeout=30;" providerName="System.Data.SqlClient" />

  </connectionStrings>

</configuration>