Compartir a través de


El elemento web Explorador de la organización no se representa para los usuarios de notificaciones de Windows

Síntomas

Cuando se usa el elemento web Del explorador de la organización en sitios habilitados para notificaciones de Windows, el elemento web no representa ninguna información. El mismo elemento web representa los usuarios con diferentes tipos de autenticación de notificaciones correctamente.

Causa

La información de la organización se extrae de la base de datos de perfiles de la aplicación de servicio de perfiles de usuario (UPSA). La información necesaria se almacena en la tabla UserProfile_Full.

Los usuarios de Active Directory (agregados manualmente o sincronizados automáticamente) se almacenan en la base de datos de perfiles de UPSA con el formato NETBIOS\LogonName (por ejemplo, CONTOSO\TestUser1).

Sin embargo, al examinar un sitio de notificaciones, el contexto de usuario usa el formato NTName de notificaciones. (Por ejemplo: i:0#.w|Contoso\TestUser1)

A continuación, el elemento web Del explorador de la organización realiza una búsqueda de base de datos para el usuario 'i'0#.w|Contoso\TestUser1' que no está disponible en la base de datos, ya que la información del usuario se almacenará con el NTName "CONTOSO\TestUser1".

El problema no se produce con ningún otro tipo de autenticación de notificaciones, ya que la base de datos de perfiles contiene el formato de nomenclatura correcto para ellos.

Solución

La función Javascript CreateHierarchyChartControl representa el control del elemento web Del explorador de la organización en la página. Esta función no es consciente del hecho de que la base de datos de perfiles de UPSA almacena los usuarios de notificaciones de Windows con un formato de nomenclatura diferente. Para solucionar este problema, el fragmento de código siguiente debe escribirse en el origen del sitio justo después del elemento web Explorador de la organización.

<script type="text/javascript">  
 function CreateHierarchyChartControl(parentId, profileId, type, persistControlId) {  
  var i = profileId.indexOf("|");  
  var claimsmode = profileId.substr(i-1,1);  
  if((i >=0 ) & (claimsmode=="w"))  
  {  
   profileId = profileId.substr(i+1,profileId.length-i-1);  
   var initParam = profileId + ',' + type + ',' + persistControlId;  
   var host = document.getElementById(parentId);  
   host.setAttribute('width', '100%');  
   host.setAttribute('height', '100%');  
   Silverlight.createObject('/_layouts/ClientBin/hierarchychart.xap',  
    host,  
    'ProfileBrowserSilverlightControl',  
    {  
     top: '30',  
     width: '100%',  
     height: '100%',  
     version: '2.0',  
     isWindowless: 'true',  
     enableHtmlAccess: 'true'  
    },  
    {  
     onLoad: OnHierarchyChartLoaded  
    },  
     initParam,  
     null);  
    }  
  }  
</script>  

Para SharePoint Server 2016

  <script type="text/javascript">
            function CreateHierarchyChartControl(parentId, profileId, type, persistControlId, flowDirection, silverLightControlId){
            var i = profileId.indexOf("|");
            var claimsmode = profileId.substr(i - 1, 1);
            if ((i >= 0) & (claimsmode == "w")) {
                profileId = profileId.substr(i + 1, profileId.length - i - 1);
                var initParam = profileId + ',' + type + ',' + persistControlId + ',' + flowDirection + ',' + silverLightControlId;
                var host = document.getElementById(parentId);
                host.setAttribute('width', '100%');
                host.setAttribute('height', '100%');
                Silverlight.createObject('/_layouts/ClientBin/hierarchychart.xap',
                 host,
                 'ProfileBrowserSilverlightControl',
                 {
                     top: '30',
                     width: '100%',
                     height: '100%',
                     version: '2.0',
                     isWindowless: 'true',
                     enableHtmlAccess: 'true'
                 },
                 {
                     onLoad: OnHierarchyChartLoaded
                 },
                  initParam,
                  null);
            }
            }            

        //For html view
            SP.UI.Portal.SimpleProfileBrowser.prototype.$35_0 = function(b, c, d) {
            var i = b.indexOf("|");
            b = b.substr(i + 1, b.length - i - 1);
            var a = $get(c);
            if (a) {
                a.innerHTML = "<DIV></DIV><DIV></DIV><DIV></DIV>";
                this.$m_0 = a.firstChild;
                this.$1C_0 = this.$m_0.nextSibling;
                this.$1a_0 = this.$1C_0.nextSibling
            }
            if (d) {
                this.$m_0.innerHTML = String.format(SpsClient.ScriptResources.silverlight_Install_Message, "<a href='javascript:Silverlight.getSilverlight(\"2.0\");'>Silverlight</a>");
                Sys.UI.DomElement.addCssClass(this.$m_0, "ms-profileBrowserHeaderText");
                Sys.UI.DomElement.addCssClass(this.$m_0.firstChild.nextSibling, "ms-profileBrowserSilverlightLink")
            }
            this.$38_0(b)
        }
       
</script>

Método 1: Agregar un elemento web Editor contenido a la página

  1. Edite la página que contiene el elemento web Organization Browser.
  2. Agregue un elemento web De contenido Editor justo después del elemento web Explorador de la organización.
  3. Edite el contenido.
  4. En la cinta de opciones, haga clic en HTML/Editar origen HTML en la pestaña Formato de texto.
  5. Copie y pegue el código anterior.
  6. Oculta chrome y el contenido del elemento web para que no aparezca en la página.

Método 2: Editar la página en SharePoint Designer

Tenga en cuenta que este método desasociará la página de la definición del sitio y, como tal, debe usarse con precaución.

  1. Abra la página en SharePoint Designer para su edición.
  2. Cambie a la vista de código.
  3. En la cinta de opciones, haga clic en Modo avanzado.
  4. Busque la <etiqueta / SharePoint:EmbeddedFormField> .
  5. Pegue el código anterior justo después de la etiqueta.
  6. Guarde los cambios.
  7. Haga clic en Sí en la ventana Advertencia de la página Definición de sitio.

Más información

Tenga en cuenta que no es posible sobrescribir la vista HTML del elemento web Explorador de la organización del cliente. Si necesita tener un control que no sea de Silverlight disponible, deberá escribir un elemento web personalizado para lograr este objetivo con notificaciones de Windows.

¿Aún necesita ayuda? Visite Comunidad de SharePoint.