usuarios usuario tipos seguridad permisos paginas online nivel modificar heredados crear compartir carpeta agregar asp.net sharepoint sharepoint-2010

asp.net - tipos - Evitar que varios usuarios editen el mismo elemento de la lista en sharepoint 2010



seguridad en sharepoint online (3)

Puede usar el mecanismo de check-out / check-in en SharePoint.

Hemos desarrollado una webpart personalizado con múltiples controles e implementado en el sitio de sharepoint 2010 que acepta entradas del usuario y una vez que el usuario hace clic en el botón de enviar todos los valores se almacenan en la lista de sharepoints con una de las columnas como un hipervínculo. Cuando el usuario hace clic en este hipervínculo, a través de la cadena de consulta se le redirigirá al mismo formulario nuevamente.

Me gustaría saber si el usuario ha hecho clic en este hipervínculo para realizar ediciones en este formulario. ¿Podemos evitar que otro usuario realice cambios en este formulario?

Por favor comparte tus pensamientos sobre esto.


Si entiendo correctamente su pregunta, quiere evitar que otros usuarios editen un elemento de la lista si alguien ya lo está editando. Eso se puede hacer usando algún tipo de bloqueo, posiblemente almacenado en la lista, pero esa estrategia adolece de dos fallas importantes:

  • Tenga en cuenta que el primer usuario hace clic en el enlace para cambiar al modo de edición y bloqueamos el elemento de la lista. Si el usuario simplemente cierra su navegador sin seguir adelante (o su red falla, o su sistema falla, o su computadora muere), el elemento permanecerá bloqueado , y todos los demás no podrán editarlo hasta que lo liberemos de alguna manera (generalmente después de un tiempo de espera, o retocándolo fuera de la parte web).

  • Nuestra parte web hará cumplir ese bloqueo, pero ningún otro código lo hará, incluido el propio SharePoint (a través de otro elemento web o del código del lado del servidor) y todo el mundo exterior (a través del Modelo de objetos del cliente). Por lo tanto, cualquier elemento de la lista podría ser susceptible de cambios mientras el usuario lo está editando, y SPListItem.Update() aún generaría una excepción si eso sucede.

Una mejor estrategia sería utilizar el propio mecanismo de bloqueo de SharePoint, revisando el elemento cuando el primer usuario cambie al modo de edición y, por supuesto, habilite el enlace solo si el elemento no está ya desprotegido.

Sin embargo, eso no resuelve el problema del bloqueo persistente (¿ cuándo revisamos el ítem nuevamente si el usuario cierra su navegador?). Además, CheckOut () es implementado por SPFile , no SPListItem , lo que significa que debe usar una biblioteca de documentos para beneficiarse de esa característica.

En general, no creo que haya una solución realmente amigable para el usuario: permite que los usuarios editen el mismo elemento al mismo tiempo y se ocupen de las consecuencias (solo uno de ellos gana), o no lo hace y es posible que deje cerrojos viejos (todos pierden).


Use el pago y la verificación y luego tenga un flujo de trabajo que borre los bloqueos que están bloqueados por más de un período de tiempo establecido ...