Compartir a través de


Uso de la aplicación de prueba ProjTool en Project Server 2010 (traducción automática)

Importante

Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

La aplicación de prueba ProjTool se ha actualizado para usar servicios de Windows Communication Foundation (WCF) en Project Server Interface (PSI) y para funcionar con autenticación de Windows, autenticación de formularios y suplantación en Microsoft Project Server 2010. ProjTool incluye ejemplos que usan los servicios Project, Resource, LookupTable, Calendar, CustomFields, QueueSystem, Archive y Admin. ProjTool es útil para ver, crear y modificar datos en una instalación de prueba de Project Server 2010, y ayuda a mostrar cómo funcionan diversos métodos de PSI. (Las rutinas para la autenticación de formularios, autenticación múltiple y suplantación están adaptadas del código de prueba de Tiger Wang, Microsoft Corporation).

Descarga de la solución:   La solución de Microsoft Visual Studio 2010 de ProjTool en el Project 2010 descargar el SDK requiere compilación. Para obtener una versión compilada de ProjTool.exe, consulte el blog de programación de proyecto contabilizar para ProjTool. El lenguaje de código fuente es de Microsoft Visual C#.

Este artículo describe cómo compilar la aplicación ProjTool y utilizar algunas de sus funciones. En este artículo no se explica cómo utilizar el PSI y conjuntos de datos o la mayor parte del código ProjTool. Para obtener más información acerca del uso de PSI con WCF, consulte Información general sobre WCF y PSI (traducción automática) y Requisitos previos para ejemplos de código basados en WCF (traducción automática). Para obtener información acerca de la aplicación original de ProjTool para Microsoft Office Project Server 2007, consulte Using the ProjTool Test Application with Project Server 2007.

Importante

La aplicación ProjTool está diseñada para utilizarse sólo en una instalación de prueba de Project Server; se proporciona como ejemplo de una herramienta de prueba y no se admite.

ProjTool fácilmente puede agregar, eliminar o cambiar los datos de las bases de datos de borrador, publicados y archiving. ProjTool también puede restablecer el servicio de cola de Project Server, Project Server Eventing Service y servicios de Internet Information Server (IIS) y puede reiniciar Microsoft SQL Server.

ProjTool no utiliza todos los servicios PSI o todos los métodos en algún servicio de uno, pero proporciona una base para una aplicación de prueba bastante completo. Los siguientes son los objetivos principales de ProjTool:

  • Proporcionar a los programadores una forma de llenar rápidamente las bases de datos de Project Server con datos en una instalación de prueba.

  • Habilitar la recuperación fácil y la visualización de los muchos conjuntos de datos que se utilizan en la PSI, para ayudar con el desarrollo de otras aplicaciones que utilizan Project Server.

  • Muestre cómo configurar los encabezados de las llamadas a métodos PSI cuando la instalación de Project Server incluye autenticación por formularios o autenticación de formularios y de Windows en el mismo puerto de dirección (multi-authentication).

  • Mostrar cambios relacionados en los campos cuando se actualizan los datos de proyecto.

  • Muestra cómo utilizar algunos de los métodos PSI y DataSet que son fundamentales para el desarrollo de Project Server.

En este artículo se incluyen las siguientes secciones:

  • Compilando ProjTool

  • Funcionamiento básico de ProjTool

    • Configuración de ProjTool

    • Mediante la ventana principal de ProjTool

    • Creación de proyectos

    • Modificación de datos del proyecto

  • Creación de tablas de búsqueda multilenguaje

  • Utilizar formularios de autenticación y suplantación en ProjTool

    • Establecer encabezados para los formularios de autenticación y suplantación

Nota

Le recomendamos que hay que hacer una copia de seguridad de todas las bases de datos de Project Server antes de ejecutar ProjTool y hacer que los archivos de copia de seguridad de base de datos adicionales después de crear estratégicos conjuntos de datos.

Compilando ProjTool

Puede modificar y compilar ProjTool en el equipo de prueba de Project Server o en un equipo de desarrollo remoto. En un equipo remoto, debe copiar el ensamblado Microsoft.Office.Project.Server.Library.dll desde un equipo de Project Server y, a continuación, establezca una referencia a la copia. Se puede compilar el ejemplo de código de ProjTool directamente de la versión de mayo de 2010 de Project Server 2010. Si utiliza un service pack más reciente o la actualización de Project Server 2010, utilice el procedimiento 1 para actualizar la solución de Visual Studio.

Nota

Siempre que instale una versión actualizada de Project Server 2010, por ejemplo a través de una actualización acumulativa, revisión o service pack, recomendamos que realice el procedimiento (1). Una actualización de Project Server puede incluir cambios en los servicios PSI y ensamblados de Project Server.

Procedimiento 1. Para compilar ProjTool para la actualización de Project Server

  1. Iniciar Visual Studio 2010 y, a continuación, abra el archivo de solución ProjTool.sln. Abra el panel Explorador de soluciones y, a continuación, expanda el proyecto ProjTool, el proyecto WCFHelpers y el nodo Referencias y el nodo Referencias Web .

  2. Si está desarrollando en un equipo remoto, realice los pasos siguientes para asegurarse de que ProjTool utiliza el mismo ensamblado de biblioteca que utiliza Project Server:

    1. Elimine la referencia de Microsoft.Office.Project.Server.Library en ambos proyectos de Visual Studio.

    2. Cree un directorio en el equipo de desarrollo, que contiene los ensamblados que se deben compilar los ejemplos del SDK de proyecto. Por ejemplo, crear el directorio C:\Project\Assemblies.

    3. Copie el ensamblado de Microsoft.Office.Project.Server.Library.dll de la prueba del equipo de Project Server en el equipo de desarrollo. El ensamblado se encuentra en el directorio [Program Files]\Microsoft Office Servers\14.0\Bin en el equipo de Project Server.

    4. Volver a agregar el ensamblado como referencia en el proyecto ProjTool y en el proyecto de WCFHelpers.

  3. Crear un ensamblado de proxy ProjectServerServices.dll actualizado para el PSI, como se describe en Procedimiento para crear un ensamblado de proxy para servicios de WCF (traducción automática), copie el ensamblado en el equipo de desarrollo y, a continuación, establezca una referencia en el proyecto ProjTool para el ensamblado actualizado.

  4. Crear un wcf actualizada.PWA.cs el archivo de proxy para el servicio de PWA. El procedimiento para crear un archivo de proxy para un servicio PSI se describe en Procedimiento para crear un ensamblado de proxy para servicios de WCF (traducción automática).

    Nota

    El servicio de PWA utiliza internamente y no se admite. ProjTool calcula los cambios realizados en las entidades de un objeto de ChangeList, que utiliza el ProjectUpdatesDataSet en el servicio de PWA.

  5. En el proyecto WCFHelpers en Explorador de soluciones, expanda el nodo Referencias Web y, a continuación, pulse el botón derecho para actualizar la referencia web de WebSvcSiteData y la referencia web de WsfSvcAuthentication.

    Nota

    Se establecen ambas de las referencias web a un sitio de SharePoint local para Project Web App, por ejemplo https://localhost/pwa/_vti_bin/SiteData.asmx. Si no está desarrollando en un equipo de prueba de Project Server, cambie el valor de propiedad de Dirección URL de referencia Web para que sea un sitio remoto Project Web App. El servicio web de SiteData y el servicio web de Authentication están SharePoint services en Project Web App; no son servicios PSI.

  6. Haga clic en el proyecto WCFHelpers y, a continuación, compile el proyecto (presione MAYÚS + F6) para crear un ensamblado actualizado de WCFHelpers.dll para ProjTool.

  7. Compile el proyecto ProjTool.

Funcionamiento básico de ProjTool

Al ejecutar ProjTool.exe, que puede iniciar sesión con autenticación de Windows o autenticación de formularios. Antes de iniciar sesión con autenticación por formularios o utilizar la suplantación, debe utilizar el cuadro de diálogo de ProjTool – inicio de sesión de Project Server (figura 1) y guardar la configuración correcta en el cuadro de diálogo de Configuración de ProjTool (figura 2). Para obtener información acerca de la representación, vea la autenticación mediante formularios y la suplantación en ProjTool.

Puede utilizar la configuración mediante programación para los extremos WCF (predeterminado), o puede utilizar el archivo app.config. Si utiliza el archivo app.config, debe establecer la dirección correcta para el servicio de ProjectServer.svc en cada extremo. La dirección en el archivo app.config descargado es https://ServerName/pwa/_vti_bin/PSI/ProjectServer.svc. También puede iniciar sesión utilizando una dirección URL de la capa de Sockets seguros (SSL), por ejemplo, https://ServerName/ProjectServerName, si está configurado para Project Server.

Cuando ejecute por primera ProjTool, el nombre del servidor de proyecto predeterminada es https://LocalHost/PWA/ y el tipo de autenticación predeterminado es Windows (figura 1).

Figura 1. Iniciar sesión con autenticación de Windows o autenticación mediante formularios

Inicio de sesión con autenticación de Windows o mediante formularios

Haga clic en Windows para el tipo de autenticación, escriba la dirección URL de una instancia de la prueba de Project Web App y, a continuación, haga clic en Iniciar sesión. ProjTool se abre y muestra una lista de todos los proyectos en una cuadrícula con datos de la tabla ProjectDataSet.Project.

Nota

Si se produce un error en un inicio de sesión, examine la configuración de ProjTool de los puertos correctos para las direcciones de Project Web App. También establece ProjTool para utilizar la configuración mediante programación de WCF, o editar el archivo app.config para establecer las direcciones de extremo WCF correctas.

Configuración de ProjTool

El cuadro de diálogo de ProjTool - inicio de sesión de Project Server tiene un vínculo de Guardar configuración para modificar la configuración antes de iniciar sesión. El cuadro de diálogo de Configuración de ProjTool (figura 2) también está disponible en el menú de Opciones en la ventana principal de ProjTool después de iniciar sesión.

Figura 2. Mediante el cuadro de diálogo de configuración de ProjTool

Uso del cuadro de diálogo Configuration (Configuración) de ProjTool

Procedimiento 2. Para guardar la configuración de ProjTool

  1. Después de iniciar sesión en ProjTool, en el menú Opciones , haga clic en Configuración.

  2. En el cuadro de diálogo Configuración de ProjTool (figura 2), escriba la URL de Project Server, por ejemplo, https://ServerName/PWA/, donde PWA es el nombre de la instancia de Project Web App.

  3. Si Project Web App está configurado para la autenticación de formularios, escriba el nombre y la contraseña del usuario de formularios que se utiliza con más frecuencia. Por ejemplo, escriba FormsAdmin.

  4. Agregue la configuración del puerto. El puerto predeterminado para la autenticación de Windows en Project Web App es 80. El puerto predeterminado para la autenticación mediante formularios es 81. Por ejemplo, si instala Project Web App con la autenticación mediante formularios, una página de inicio de sesión típica es https://ServerName:81/PWA/.

    Nota

    Si configura una instancia de Project Web App para multi-authentication, el puerto de Windows y el puerto de formularios pueden ser el mismo valor, por ejemplo, https://ServerName:200/PWA/.

  5. Para iniciar sesión con la configuración predeterminada y vaya a la ventana de Inicio de sesión de Project Server , active la casilla de verificación de Inicio de sesión automático en el inicio .

  6. Para utilizar el archivo app.config en configuración de extremo WCF, en lugar de la configuración mediante programación, active la casilla de verificación de los extremos de WCF de configurar con app.config . Si utiliza el archivo app.config, debe editar el archivo para establecer la dirección correcta del servicio ProjectServer.svc en Project Web App.

  7. La configuración predeterminada de la cola de Project Server es esperar hasta que se complete el trabajo de la cola. Es decir, ProjTool no continuar con la ejecución del programa principal, hasta que se complete un conjunto de llamadas a un método basado en la cola de PSI. Por ejemplo, si desprotege un proyecto y, a continuación, haga clic en CheckinProject(s) en la ventana principal, ProjTool esperará hasta que finalice la sesión de la cola de la llamada QueueCheckinProject.

    Si espera hasta que se completan todos los trabajos de cola está activada, ProjTool espera para cada solicitud de cola individual.

  8. Haga clic en Guardar y cerrar.

A diferencia de la implementación de ProjTool para Office Project Server 2007, ProjTool para Project Server 2010 no tiene opciones de suplantación en el cuadro de diálogo de Configuración de ProjTool . Suplantación se administra internamente mediante el cuadro de diálogo de Inicio de sesión de Project Server avanzadas , como se describe en la autenticación mediante formularios y la suplantación en ProjTool.

Mediante la ventana principal de ProjTool

El menú en la ventana principal de ProjTool (figura 3) incluye los siguientes elementos:

  • Archivo   Inicie sesión como un usuario diferente, o inicie sesión mediante la suplantación.

  • Nuevo   Crear proyectos, proyectos de plantillas, los campos personalizados o los recursos de empresa. Generar un equipo de proyecto, o realizar copias de seguridad y restaurar proyectos.

    El cuadro de diálogo de copia de seguridad o restaurar proyectos de empresa le permite guardar una instantánea de cada proyecto seleccionado en la base de datos de borrador para archivar la base de datos. También puede restaurar proyectos desde la base de datos de archivo a la base de datos de borrador.

  • Tabla de consulta   Crear una tabla de búsqueda simple, una tabla de búsqueda multilenguaje, mostrar valores de la tabla de consulta y conjunto de idiomas que se utilizará para las tablas de búsqueda de varios idiomas en el equipo de prueba de Project Server.

  • Herramientas   Vínculo de elementos de submenú Utilidades de la que obtener una descripción del error, restablecer el servicio de eventos o de servicio de cola de Project Server, reinicie SQL Server, restablecer IIS o restablecer todos los servicios.

  • Opciones   Actualizar la cuadrícula o borrar los mensajes de estado. El submenú de Configuración muestra el cuadro de diálogo de Configuración de ProjTool (figura 2).

  • Ayuda   Muestra el cuadro de diálogo Acerca de ProjTool .

Figura 3. Cuadro botones de acción, la lista de proyectos y el texto de estado en la ventana principal de ProjTool

Uso de la ventana principal de ProjTool

Además los elementos de menú de la ventana principal muestra una serie de botones de acción encima de la cuadrícula de datos del proyecto, como sigue:

  • Eliminar proyecto   Elimina uno o varios proyectos seleccionados. Puede eliminar de la base de datos publicados y de la base de datos de borrador o de sólo la base de datos publicados.

  • Proyectos de protección   Le permite seleccionar un simple o forzada protegerlo de los proyectos seleccionados. Puede utilizar protegerlo forzado si un proyecto está desprotegido por otro usuario o si se ha realizado la extracción con un ID de sesión de cola diferente.

  • Proyectos de desprotección   Permite desproteger uno o varios proyectos seleccionados en la ventana principal de ProjTool y protegerlos con el botón de Los proyectos de protección .

    Nota

    El identificador de sesión de la cola no es válido para la protección de proyectos mediante el uso de otra ventana, como, por ejemplo, el cuadro de diálogo Detalles de proyectos .

  • Publicación los proyectos   Guarda los proyectos de la base de datos de borrador a la base de datos publicados. Puede elegir una publicación completa o parcial publicar. No, el proceso de publicación en ProjTool crear o modificar un sitio de SharePoint para el proyecto. Puede agregar esa capacidad en ProjTool con componentes de la interfaz de usuario adicionales y la lógica del método QueuePublish.

  • Detalles del proyecto de lectura   Muestra un cuadro de diálogo con el conjunto completo de las tablas en el ProjectDataSet para el proyecto seleccionado (figura 5). Puede agregar tareas, realice los cambios en los datos y comparar los datos de borrador con los datos publicados.

    Nota

    Si desproteger el proyecto en la ventana principal de ProjTool y, a continuación, modificar datos en el cuadro de diálogo Detalles de proyectos , obtendrá un error de CICOCheckedOutInOtherSession al actualizar los datos. El proyecto ya está desprotegido por medio de un ID de sesión de cola diferente.

  • Cambiar el nombre de proyecto   Cambia el nombre del proyecto seleccionado en la base de datos de borrador y la base de datos publicados.

  • Actualizar   Ejecuta el método ReadProjectsList para volver a llenar la cuadrícula.

  • Salir   Sale de ProjTool.

El cuadro de texto en la parte inferior de la ventana principal registra el estado de acciones, con la más reciente en la parte superior. El cuadro de texto también muestra los datos XML a partir de los errores de System.ServiceModel.FaultException que puede generar una llamada PSI. La barra de estado en la parte inferior de la ventana principal muestra el número de versión de Project Server y la fecha y hora actuales.

El número de versión de lanzamiento de mayo de 2010 para Project Server 2010 es 14.0.4750.1000. La versión correspondiente de Microsoft Project Professional 2010 es 14.0.4751.1000.

Nota

El cuadro de diálogo Detalles de proyectos en ProjTool muestra la versión del archivo del ensamblado Microsoft.Office.Project.Server.Library.dll. La barra de estado en la ventana principal de la ProjTool muestra la versión de Project Server desde el método PSI ReadServerVersion. La versión del archivo del ensamblado Microsoft.Office.Project.Server.Library.dll es 14.0.4763.1000. Otros ensamblados de Project Server en la misma instalación pueden tener distintas versiones.

Creación de proyectos

Para crear uno o varios proyectos de prueba, haga clic en Proyectos en el menú de Nuevo en la ventana principal de ProjTool. Figura 4 muestra el cuadro de diálogo Crear proyectos de servidor . Además de crear varios proyectos, para, opcionalmente, puede agregar tareas a cada proyecto, crear y agregar recursos de costo, material o trabajo local y publicar los proyectos.

Figura 4. Mediante el cuadro de diálogo Crear proyectos de servidor

Creación de proyectos con tareas

Si el prefijo del nombre de proyecto es prueba de ProjTool - y crear dos proyectos, ProjTool incrementa los nombres de proyecto como prueba de ProjTool-1 y 2 de la prueba de ProjTool.

Nota

La lista desplegable tipo de proyecto no muestra todos los tipos de la enumeración Project.ProjectType. Los tipos de proyecto sólo es válido en el que puede crear el PSI son Project (un proyecto estándar), Template, LightWeightProject (una propuesta de proyecto), MasterProject y InsertedProject. Los otros tipos de proyecto son para uso interno. El valor de enumeración aparece a la derecha de la lista desplegable.

Cuando haga clic en Crear proyectos y, a continuación, haga clic en Cerrar, es posible que deba actualizar la ventana principal de ProjTool para mostrar los nuevos proyectos en la cuadrícula.

Modificación de datos del proyecto

Para ver el cuadro de diálogo Detalles de proyectos , seleccione un proyecto en la ventana principal de ProjTool y, a continuación, haga clic en Detalles del proyecto de lectura.

Figura 5. Mediante el cuadro de diálogo Detalles del proyecto

Actualización de un campo en el cuadro de diálogo Project Details (Detalles del proyecto)

Las fichas de la cuadrícula muestran todas las tablas de datos en el ProjectDataSet para el proyecto seleccionado. Por ejemplo, haga clic en la ficha Tarea para mostrar datos en el TaskDataTable (figura 5). La primera tarea es la tarea de resumen del proyecto (TASK_ID = 0). Si el proyecto no se ha retirado, puede agregar y eliminar las tareas y establecer las propiedades de la tarea.

Campos de lectura y escritura de cada tabla tienen un fondo blanco; campos de sólo lectura aparecen en gris. ProjTool muestra actualiza los campos que son de lectura/escritura como amarillo. Cuando se cambian algunos campos de ProjTool, Project Server internamente puede cambiar los campos relacionados de sólo lectura. ProjTool muestra los campos de sólo lectura que cambia de Project Server como la luz amarilla. Cuando haya terminado de realizar cambios, haga clic en Actualizar proyecto. Por ejemplo, la figura 5 muestra que ProjTool el nombre de la tarea 1 en el proyecto.

Para utilizar los recursos de empresa en el proyecto, haga clic en Crear equipo. En lugar de utilizar ProjTool para realizar un conjunto de cambios para el equipo del proyecto, a veces es más fácil realizar los cambios mediante el uso de Project Professional 2010.

Para guardar la ProjectDataSet a un archivo XML, haga clic en Guardar conjunto de datos a XML. Puede guardar la ProjectDataSet todo antes y después de realizar cambios y, a continuación, comparar fácilmente los archivos XML con una herramienta como, por ejemplo, más allá de comparar.

Advertencia

ProjTool, utiliza el servicio de PWA de PSI para crear un ProjectUpdatesDataSet, que se utiliza para ayudar a controlar los cambios. El servicio de PWA se utiliza internamente por la aplicación Web de proyecto y no se admite. El uso de objetos de PWA de ProjTool es sólo para pruebas. Las aplicaciones desarrolladas para las instalaciones de producción de Project Server no deberían utilizar conjuntos de datos o métodos en el servicio de PWA. Actualizaciones y service packs para Project Server pueden cambiar los métodos de PWA, firmas y campos.

Cuando se cambia un porcentaje completado de la asignación o en otro valor de fase temporal, haga clic en Actualizar proyecto para mostrar los cambios en los campos relacionados.

Por ejemplo, si cambia el valor del campo ASSN_PCT_WORK_COMPLETE a 75 para una asignación y, a continuación, haga clic en Actualizar proyecto, varios campos adicionales muestran los cambios en amarillo (figura 6). Los campos modificados en la tabla de asignación incluyen ASSN_ACT_WORK y ASSN_REM_WORK. En la tabla de la tarea, los campos de TASK_REM_DUR, TASK_PCT_COMP, TASK_PCT_WORK_COMP, TASK_ACT_WORK y TASK_REM_WORK también muestran los cambios de color amarillos para esa tarea y para la tarea de resumen del proyecto.

Figura 6. Un porcentaje de asignación completado cambios también otros campos

Cambios en los campos según el porcentaje de la asignación completado

Algunos de los campos de sólo lectura también mostrar los cambios en un fondo amarillo claro, como, por ejemplo, MOD_DATE en la tabla y la tabla de asignación y TASK_ACT_DUR, TASK_RESUME_DATE, TASK_STOP_DATE y TASK_COMPLETE_THROUGH en la tabla de tareas tareas. Hay cambios adicionales en la tabla de proyecto y la tabla ProjectResource.

Creación de tablas de búsqueda multilenguaje

El menú LookupTable en la ventana principal de ProjTool contiene los siguientes elementos:

  • LookupTable simple   Muestra el cuadro de diálogo crear y administrar las tablas de búsqueda y muestra todos los datos en el LookupTableDataSet en una cuadrícula con pestañas para las datatables (LookupTables, LookupTableMasksy LookupTableTrees).

  • LookupTable multilenguaje   Crea tablas de búsqueda multilingüe para las pruebas.

  • Valores de presentación LookupTable   Muestra los valores de las tablas de búsqueda simple o en varios idiomas (figura 8).

  • Establecer el idioma del servidor   Crea las tablas de base de datos de Project Server que pueden contener datos de la tabla de búsqueda multilenguaje simulada, para realizar pruebas (figura 7).

Puede desproteger, modificar, actualizar y eliminar tablas de consulta en el cuadro de diálogo crear y administrar las tablas de búsqueda . Con los botones de la Carga de ensamblado y Crear LT del ensamblado , puede abrir una cuenta de Microsoft.NET Framework asociado y crear una tabla de búsqueda para realizar pruebas con el espacio de nombres de ensamblado.

Puede crear tablas de búsqueda multilingüe en una prueba de la instalación de Project Server. ProjTool le permite simular la instalación de varias tablas de base de datos de lenguaje en el servidor para realizar pruebas. No es necesario instalar paquetes de idioma de Project Server para probar la creación de tablas de búsqueda multilenguaje. La variable languageList en ProjTool contiene la lista de idiomas activos de Project Server.

Figura 7. Cuadro de diálogo del instalador de idioma

Simulación de los idiomas instalados en Project Server

Importante

No ejecutar la búsqueda de las acciones de la tabla, establecer idiomas o realizar otros cambios con ProjTool en una instalación de producción de Project Server.

Procedimiento 3. Para crear y ver una tabla de búsqueda multilingüe de ejemplo

  1. Haga clic en Definir idioma del servidor en el menú LookupTable en la ventana principal de ProjTool.

    1. En el cuadro de diálogo del Instalador de lenguaje (figura 7), seleccione otro idioma también en el lenguaje principal de Project Server en Agregar o quitar idiomas. Por ejemplo, seleccione Inglés y Francés. Siempre se debe seleccionar el idioma principal de Project Server.

    2. Escriba el nombre de la instancia de Microsoft SQL Server que utiliza Project Server y, a continuación, establezca las propiedades de inicio de sesión.

    3. Haga clic en Obtener lista de base de datos para mostrar la lista de bases de datos.

    4. Seleccione la base de datos de Project Server publicado en la lista desplegable para la instancia de Project Web App que está utilizando.

    5. Haga clic en Guardar. ProjTool crea las tablas de base de datos necesarios y reinicia IIS. Puede ver los idiomas instalados actuales en la lista. Haga clic en Cerrar.

  2. Haga clic en Varios idiomas LookupTable en el menú LookupTable .

    1. En el cuadro de diálogo Crear tablas de búsqueda de varios idiomas , escriba un nombre para la tabla de consulta. Por ejemplo, escriba LangTest.

    2. Seleccione el LCID principal, por ejemplo 1033.

    3. Seleccione los idiomas que desee en la lista de Idiomas ; Por ejemplo, seleccione Inglés y Francés.

    4. Tipo 2 para el número de niveles; 3 para los valores de cada nivel; y 4 para la Longitud de los valores (el número de caracteres de ejemplo de cada valor).

    5. Haga clic en Creary, a continuación, haga clic en Cerrar.

  3. Haga clic en Mostrar LookupTable valores en el menú LookupTable .

    1. Seleccione la tabla de consulta en la lista desplegable. Por ejemplo, seleccione LangTest.

    2. Seleccione el idioma en la lista desplegable (figura 8) y, a continuación, haga clic en Obtener valores.

Figura 8 muestra las estructuras de tablas de búsqueda y los valores de la tabla de consulta de varios idiomas de LangTest de ejemplo. ProjTool crea caracteres de muestra en el campo LT_VALUE_TEXT, donde el número de caracteres en la primera palabra es la longitud de cada valor y los caracteres son válidos en los lenguajes que utilizan. Por ejemplo, el valor del primer nodo inglés es ÂÞæÛ eng 1033 y el valor del mismo nodo en francés es ÂÞæÛ fra 1036.

Figura 8. Ver los valores en una tabla de búsqueda multilenguaje

Vista de los valores de una tabla de consulta de varios idiomas

Para ver la estructura de la tabla de búsqueda multilingüe que creó en ProjTool, se abre en Project Web App. En la página Configuración del servidor, haga clic en campos personalizados de empresa y tablas de consulta. En la página de campos personalizados de empresa y las tablas de búsqueda, por ejemplo, haga clic en LangTest en la sección de Tablas de consulta para campos personalizados . Project Web App muestra sólo los valores para el paquete de idioma de Project Server está instalado. El valor de ÂÞæÛ eng 1033 en el ejemplo de prueba es uno de los dos niveles superiores, cada uno de ellos tiene tres subniveles.

Para obtener más información acerca de las tablas de búsqueda y los campos personalizados, consulte Campos personalizados locales y de empresa (traducción automática) y Walkthrough: Creating a Hierarchical Lookup Table. Para obtener una lista de códigos de idioma, consulte el gráfico de identificador de configuración regional (LCID).

Utilizar formularios de autenticación y suplantación en ProjTool

Para utilizar suplantación con Project Server 2010, debe establecer permisos para el usuario actual (o el grupo del usuario) en la aplicación de servicios de Project Server mediante el uso de la página Administrar aplicaciones de servicio en la aplicación de Administración Central de SharePoint 2010. También debe establecer permisos para el sitio de Project Web App con el comando de en el menú Acciones del sitio en Project Web App. Para obtener procedimientos paso a paso acerca de cómo establecer permisos para la suplantación, consulte Procedimiento para usar suplantación con WCF (traducción automática).

A diferencia de la implementación de ProjTool para Office Project Server 2007, el sitio de Project Web App no debe ejecutarse bajo las credenciales de sesión del usuario. La autenticación mediante formularios ProjTool de Project Server 2010 utiliza el servicio web de Authentication que forma parte de Microsoft SharePoint Foundation 2010. Además, ProjTool utiliza el servicio web de SiteData para obtener el ID de localización de Project Web App.

El método P14Login en el archivo Program.cs es el método de inicio de sesión principal en ProjTool. El siguiente código es parte del método para el caso donde inicio de sesión no es mediante la suplantación.

if (!isImpersonated)
{
    if (isWindowsAuth)
    {
        if (useDefaultWindowsCredentials)
        {
            result = true;
        }
            /* . . . */
    }
    else    
    {
        // Forms authentication requires the Authentication web service in 
        // Microsoft SharePoint Foundation 2010.
        result = WcfHelpers.LogonWithMsf(userName, password, new Uri(baseUrl));
    }
}

La clase WcfHelpers es un proyecto independiente de Visual Studio. En el método LogonWithMsf, se inicializa el objeto authentication con la dirección URL Project Web App y un objeto de CookieContainer y, a continuación, el método Authentication.Login puede aceptar un usuario de formularios.

public class WcfHelpers
{
    // Use the Authentication class in the SharePoint Foundation web services, not in the PSI.
    private static Authentication authentication = null;
    private static AuthenticationMode mode = AuthenticationMode.Windows;
    private static CookieContainer cookieContainer = null;
    private static String impersonationContextString = String.Empty; 

    /* . . . */

    // Log on by using the Authentication web service in SharePoint Foundation.
    public static bool LogonWithMsf(string username, string password, Uri pwaURI)
    {
        if (authentication == null)
        {
            string rootUrl = pwaURI.Scheme + Uri.SchemeDelimiter + pwaURI.Host + ":" + pwaURI.Port;

            authentication = new Authentication();
            authentication.Url = rootUrl + "/_vti_bin/Authentication.asmx";
        }

        authentication.CookieContainer = new System.Net.CookieContainer();
        LoginResult result = authentication.Login(username, password);

        mode = authentication.Mode();
        cookieContainer = authentication.CookieContainer;

        return (result.ErrorCode == LoginErrorCode.NoError);
    }

    /* . . . */
}

Para utilizar la suplantación en ProjTool, en el menú Archivo , haga clic en Iniciar sesión como. En el cuadro de diálogo de Inicio de sesión de Project Server avanzada (figura 9), puede seleccionar un nombre de la lista de recursos de empresa en la lista desplegable. Cuando suplanta a un recurso de empresa, usted asume los permisos de ese usuario. La suplantación es útil para probar la seguridad de las aplicaciones que se integran con Project Server; Sin embargo, se debe minimizar el uso de la suplantación en las aplicaciones de producción.

Figura 9. Cuadro de diálogo de inicio de sesión de servidor avanzadas de proyecto

Inicio de sesión avanzado para suplantación

Establecer encabezados para los formularios de autenticación y suplantación

Al iniciar la sesión Project Server 2010 mediante la autenticación de formularios o la suplantación, cada conjunto de llamadas a un servicio específico de PSI se debe establecer en un bloque de OperationContextScope. En el siguiente método de CreateProject en el archivo Program.cs, el objeto scope es válido para el objeto projectClient. Se pueden llamar a varios métodos en el servicio de proyecto dentro del bloque, pero no se puede llamar a métodos en otros servicios PSI. También, no se puede anidar bloques de OperationContextScope.

public static bool CreateProject(SvcProject.ProjectDataSet projectDataSet)
{
    jobGuid = Guid.NewGuid();
    bool result = true;

    using (OperationContextScope scope = new OperationContextScope(projectClient.InnerChannel))
    {
        WcfHelpers.UseCorrectHeaders(isImpersonated);
        projectClient.QueueCreateProject(jobGuid, projectDataSet, false);
    }
    if (waitForQueue)
    {
        result = WaitForQueueJobCompletion(jobGuid, NO_QUEUE_MESSAGE /* SvcQueueSystem.QueueMsgType.ProjectCreate*/);
    }
    return result;
}

El método UseCorrectHeaders en la clase WcfHelpers establece los encabezados HTTP correctos para la autenticación de Windows, autenticación de formularios, multi-authentication y la suplantación para las llamadas PSI en ese scope, en el código siguiente.

private static AuthenticationMode mode = AuthenticationMode.Windows;
private static CookieContainer cookieContainer = null;
private static String impersonationContextString = String.Empty; 

public static CookieContainer CookieContainer
{
    get
    { return cookieContainer; }
}

public static AuthenticationMode AuthenticationMode
{
    get
    { return mode; }
}

public static string HeaderXformsKey
{
    get
    { return "X-FORMS_BASED_AUTH_ACCEPTED"; }
}

public static string HeaderXformsValue
{
    get
    { return "f"; }
}

/* . . . */

 public static void UseWindowsAuthOnMultiAuthHeader()
{
    WebOperationContext.Current.OutgoingRequest.Headers.Remove(HeaderXformsKey);
    WebOperationContext.Current.OutgoingRequest.Headers.Add(HeaderXformsKey, 
        HeaderXformsValue);
}

public static void UseCookieHeader()
{
    if (cookieContainer != null)
    {
        var cookieString = cookieContainer.GetCookieHeader(new Uri(authentication.Url));

        WebOperationContext.Current.OutgoingRequest.Headers.Remove("Cookie");
        WebOperationContext.Current.OutgoingRequest.Headers.Add("Cookie", cookieString);
    }
}

public static void UseCorrectHeaders(bool isImpersonated)
{
    if (isImpersonated)
    {
        // Use WebOperationContext in the HTTP channel, not the OperationContext.
        WebOperationContext.Current.OutgoingRequest.Headers.Remove("PjAuth");
        WebOperationContext.Current.OutgoingRequest.Headers.Add("PjAuth", 
            impersonationContextString);
    }

    if (mode == AuthenticationMode.Windows)
    {
        UseWindowsAuthOnMultiAuthHeader();
    }

    UseCookieHeader();
}

El método UseCorrectHeaders comprueba primero si la llamada es a través de la suplantación. Si es así, se quita cualquier encabezado de PjAuth existente y, a continuación, agrega un encabezado de PjAuth que incluye el valor del contexto de suplantación. Para obtener un ejemplo de código que obtiene y establece el contexto de suplantación, consulte la clase WcfHelpers en el código fuente de ProjTool o Procedimiento para usar suplantación con WCF (traducción automática).

Para la autenticación de Windows para multi-authentication, el método UseCorrectHeaders llama a UseWindowsAuthOnMultiAuthHeader para quitar cualquier encabezado denominado X-FORMS_BASED_AUTH_ACCEPTED y, a continuación, agrega ese encabezado nuevo con el valor de f. Por último, si existe el objeto cookieContainer, UseCorrectHeaders llama a UseCookieHeader para agregar la cookie de autenticación mediante formularios. El método LogonWithMsf inicializa el objeto de cookieContainer al inicio de sesión es autenticación de formularios.

Para obtener más información acerca de multi-authentication en el entorno de reclamaciones de SharePoint, consulte la sección de Multi-Authentication de reclamaciones de uso en Requisitos previos para ejemplos de código basados en WCF (traducción automática).

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Vea también

Tareas

Procedimiento para crear un ensamblado de proxy para servicios de WCF (traducción automática)

Procedimiento para usar suplantación con WCF (traducción automática)

Conceptos

Campos personalizados locales y de empresa (traducción automática)

Información general sobre WCF y PSI (traducción automática)

Requisitos previos para ejemplos de código basados en WCF (traducción automática)

Otros recursos

Walkthrough: Creating a Hierarchical Lookup Table

gráfico de identificador de configuración regional (LCID)

para exponer del blog de programación de proyecto para ProjTool

Using the ProjTool Test Application with Project Server 2007

Historial de cambios

Fecha

Descripción

Motivo

Enero de 2011

Publicación inicial