locked
Obtener el nombre de la PC del usuario en SharePoint 2007 RRS feed

  • Pregunta

  • Estoy personalizando las Tareas (“Task”) de una sección en el intranet donde trabajo, los usuarios pueden registrar de diferentes lugares  y se necesita saber desde donde se registra la tarea por lo que obteniendo el nombre de la PC sabría de donde registra. El problema es que no he conseguido como hacerlo. Agradezco a quien me pueda ayudar o a quien me comente otras formas en las que pueda obtener la información deseada (saber de donde se registra la tarea).

    Gracias de antemano.

    miércoles, 13 de marzo de 2013 21:10

Respuestas

  • Hola Papolo.

    Tal y como comenta Juan Carlos, esto me da que es algo peliagudo. Para obtener el nombre del pc del usuario necesitarías ejecutar ActiveX como el que te pongo a continuación.

    function GetComputerName()
    {
        try
        {
            var network = new ActiveXObject('WScript.Network');
            alert(network.computerName);
        }
        catch (e) { }
    }

    Ahora bien... esto no se lleva nada pero que nada bien con los navegadores y sus niveles de seguridad por lo que es improbable que funcione.

    https://community.dynamics.com/crm/f/117/t/37686.aspx#.UUHP1Bz6OCg


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong


    jueves, 14 de marzo de 2013 13:26
    Moderador
  • Hola,

    Lo que quieres hacer no es funcionalidad por defecto y es bastante complicado...cuando asignas una tarea la asignas con un usuario que pertenece al directorio activo de la organización o a otro sistema con información de usuario, pero no lo haces con la identidad del usuario qué está haciendo uso de un equipo local...como sabes, SharePoint no deja de ser una "aplicación web" un tanto especial que por lo tanto es accesible desde el navegador a partir de las peticiones enviadas a un servidor. Entonces, a nivel de cliente sólo se puede ejecutar código de cliente, es decir, JavaScript...no soy un experto en JavaScript, pero me da qué recoger la información que comentas no es posible.

    Aún así, ¿se podría hacer? Seguramente sí, pero es tan complejo qué casi ni es planteable...por ejemplo, se me ocurre que una posibilidad (estoy lanzando ideas) podría ser encajar un control active x propio que permita leer esa información del equipo local del usuario y guardarlo en algún lugar que se pueda consultar luego fácilmente desde la lista de tareas utilizando un manejador de eventos.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.compartimoss.com
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 14 de marzo de 2013 7:34

Todas las respuestas

  • Hola,

    Lo que quieres hacer no es funcionalidad por defecto y es bastante complicado...cuando asignas una tarea la asignas con un usuario que pertenece al directorio activo de la organización o a otro sistema con información de usuario, pero no lo haces con la identidad del usuario qué está haciendo uso de un equipo local...como sabes, SharePoint no deja de ser una "aplicación web" un tanto especial que por lo tanto es accesible desde el navegador a partir de las peticiones enviadas a un servidor. Entonces, a nivel de cliente sólo se puede ejecutar código de cliente, es decir, JavaScript...no soy un experto en JavaScript, pero me da qué recoger la información que comentas no es posible.

    Aún así, ¿se podría hacer? Seguramente sí, pero es tan complejo qué casi ni es planteable...por ejemplo, se me ocurre que una posibilidad (estoy lanzando ideas) podría ser encajar un control active x propio que permita leer esa información del equipo local del usuario y guardarlo en algún lugar que se pueda consultar luego fácilmente desde la lista de tareas utilizando un manejador de eventos.

    Un saludo


    ------------------------------------------------------------
    Juan Carlos González Martín MVP de SharePoint Server
    Director revista CompartiMOSS: http://www.compartimoss.com
    Blog: http://geeks.ms/blogs/ciin
    Twitter: @jcgm1978
    ------------------------------------------------------------

    jueves, 14 de marzo de 2013 7:34
  • Hola Papolo, para seguir la linea de Juan Carlos (de tirar ideas), lo que una vez hicimos en un proyecto para obtener desde donde acceden los usuarios es tomar el log del IIS. No fue simple el proyecto pero basicamente lo que hicimos fue:

    Diariamente se parseaba el log del IIS y se dejaban los datos depurados en un base sql.

    Desde SharePoint, se hizo un timer job que corria diariamente para importar algunos datos de esa base.

    Por otro lado se desarrollaron reportes que informaban los accesos por usuarios tomando los datos directamente del SQL.

    No es exactamente lo que vos necesitas, pero a lo mejor podes usar el log del IIS. Si mal no recuerdo por default por lo menos loguea User, IP, URL y horario por lo menos, tu proceso podría buscar por cada tarea generada la IP y dejarla en un campo de la tarea para que después la puedas trabajar tranquilo.

    De nuevo.......tirando ideas......

    Saludos!!


    Msorli

    jueves, 14 de marzo de 2013 12:43
  • Hola Papolo.

    Tal y como comenta Juan Carlos, esto me da que es algo peliagudo. Para obtener el nombre del pc del usuario necesitarías ejecutar ActiveX como el que te pongo a continuación.

    function GetComputerName()
    {
        try
        {
            var network = new ActiveXObject('WScript.Network');
            alert(network.computerName);
        }
        catch (e) { }
    }

    Ahora bien... esto no se lleva nada pero que nada bien con los navegadores y sus niveles de seguridad por lo que es improbable que funcione.

    https://community.dynamics.com/crm/f/117/t/37686.aspx#.UUHP1Bz6OCg


    "En los momentos de crisis, sólo la imaginación es más importante que el conocimiento"
    MCTS | SharePoint 2010, Application Development
    MCTS | SharePoint 2010, Configuring
    MS | Programming in HTML5 with JavaScript and CSS3 (MS)
    Twitter | @saintwukong


    jueves, 14 de marzo de 2013 13:26
    Moderador
  • Así es Santiago, tuve que cambiar la seguridad en el lE (Tool\Internet options\Security)  en la zona “Local intranet” en el botón [Custom level…] habilite (“Enable”) la opción “Initialize and script ActiveX controls not marked as safe for scripting” y deste modo me procesa el ActiveX.

    Gracias por la ayuda a todos :)

    jueves, 14 de marzo de 2013 15:35
  • Saludos msorli, se ve interesante lo que informas pero estoy corto de tiempo así que por ahora utilizare el ActiveX pero tomare en cuenta la idea que me expones.

    Gracias.

    jueves, 14 de marzo de 2013 15:39