Con esta necesidad me he encontrado hoy…y la solución es bastante sencilla como podréis ver en el siguiente bloque de código:
-
Lo primero que necesitaremos es añadir referencias a Microsoft.SharePoint, System.Configuration y System.Web (siempre que no las hayamos añadido ya) acompañadas de las correspondientes directivas using a Microsoft.SharePoint, Microsoft.SharePoint.Administration, System.Configuration y System.Web.Configuration.
-
A partir de aquí, WebConfigurationManager.OpenWebConfiguration() nos da acceso al archivo web.config de la Aplicación Web actual y para localizar la cadena de conexión en cuestión no tenemos más que acceder a la sección de Connection Strings del mismo.
1: string sConnectionString="";
2: try
3: {
4: string sWebApplicationName = string.Empty;
5: string sConnectionStringKey = "<KeyCadenaConexion>";
6: Configuration cConfig;
7: sWebApplicationName = SPContext.Current.Site.WebApplication.Name;
8: cConfig = WebConfigurationManager.OpenWebConfiguration("/", sWebApplicationName);
9:
10: if (cConfig != null)
11: {
12: if (!string.IsNullOrEmpty(cConfig.ConnectionStrings.ConnectionStrings[sConnectionStringKey].ToString()))
13: {
14: sConnectionString=cConfig.ConnectionStrings.ConnectionStrings[sConnectionStringKey].ToString();
15: }
16:
17: }
18: }
19: catch (Exception)
20: {
21: throw;
22:
23: }