Modificar valor columna de una libreria de documentos utilizando C

15/10/2007 - 22:36 por Miquel | Informe spam
Hola a todos,

Soy nuevo e inexperto en el tema y estoy haciendo una aplicación .ASPX que a
partir de un documento guardado en un Sharepoint pueda asociarle algunos
atributos (categoría, tipología del documento...). Mi problema consiste en el
almacenamiento de los datos en Sharepoint. Para esta actualización uso las
clases de Sharepoint proporcionadas con la dll. El código que utilizo es
(únicamente para la modificación de la columna de un documento concreto):

[WebMethod]

public string guardarDadesDoc(string WebURL,string cat)

{

string valorRetornat = "";

SPSecurity.RunWithElevatedPrivileges(delegate()

{

SPSite sps = new SPSite(WebURL);

sps.AllowUnsafeUpdates = true;

SPWeb spw = sps.OpenWeb();

SPListCollection splc = spw.Lists;


SPList spl = spw.GetListFromUrl("http://win2003/Docs/Forms/AllItems.aspx");

SPDocumentLibrary docLib = (SPDocumentLibrary)spl.Lists[spl.ID];

docLib.Items[0]["Categoria"] = cat;

docLib.Update();

valorRetornat=docLib.Items[0]["Categoria"].ToString();

});

return valorRetornat;

}

}

Al depurar el código la instrucción Update() me devuelve el error:

"La validación de seguridad de esta página no es correcta. Haga clic en
Atrás en el explorador Web, actualice la página y vuelva a intentar la
operación."

El valor del parámetro WebURL es http://win2003 y si la columna Categoria
tiene un valor el programa me devuelve dicho valor (entiendo, por tanto, que
el acceso a la información de lista y documento se realiza de forma
correcta).

Alguien podría decirme como puedo resolver el problema. Estoy utilizando el
usuario administrador (del servidor y de Sharepoint) para la ejecución del
código.

La introducción de los datos directamente en el Sharepoint no es una
solución viable en mi caso

Gracias

Saludos

Miquel Boada

Preguntas similare

Leer las respuestas

#1 boada.miquel
04/12/2007 - 14:02 | Informe spam
On 17 oct, 20:46, Elecktrus
wrote:
Hola, Miquel:
1) Veo que actualizas el item[0]. Con esto siempre estarias actualizando el
primer elemento de la lista. Si es solo para el ejempo, vale, pero en real no
te sirve si la biblioteca tiene mas de un elemento
2) Prueba a hacer update del item (y no de la ista):

sustituye docLib.Update(); por item[0].Update();

Con eso deberia funcionar..."Miquel" wrote:
> Hola a todos,

> Soy nuevo e inexperto en el tema y estoy haciendo una aplicación .ASPX que a
> partir de un documento guardado en un Sharepoint pueda asociarle algunos
> atributos (categoría, tipología del documento...). Mi problema consiste en el
> almacenamiento de los datos en Sharepoint. Para esta actualización uso las
> clases de Sharepoint proporcionadas con la dll. El código que utilizo es
> (únicamente para la modificación de la columna de un documento concreto):

> [WebMethod]

> public string guardarDadesDoc(string WebURL,string cat)

> {

> string valorRetornat = "";

> SPSecurity.RunWithElevatedPrivileges(delegate()

> {

> SPSite sps = new SPSite(WebURL);

> sps.AllowUnsafeUpdates = true;

> SPWeb spw = sps.OpenWeb();

> SPListCollection splc = spw.Lists;

> SPList spl = spw.GetListFromUrl("http://win2003/Docs/Forms/AllItems.aspx");

> SPDocumentLibrary docLib = (SPDocumentLibrary)spl.Lists[spl.ID];

> docLib.Items[0]["Categoria"] = cat;

> docLib.Update();

> valorRetornat=docLib.Items[0]["Categoria"].ToString();

> });

> return valorRetornat;

> }

> }

> Al depurar el código la instrucción Update() me devuelve el error:

> "La validación de seguridad de esta página no es correcta. Haga clic en
> Atrás en el explorador Web, actualice la página y vuelva a intentar la
> operación."

> El valor del parámetro WebURL eshttp://win2003y si la columna Categoria
> tiene un valor el programa me devuelve dicho valor (entiendo, por tanto, que
> el acceso a la información de lista y documento se realiza de forma
> correcta).

> Alguien podría decirme como puedo resolver el problema. Estoy utilizando el
> usuario administrador (del servidor y de Sharepoint) para la ejecución del
> código.

> La introducción de los datos directamente en el Sharepoint no es una
> solución viable en mi caso

> Gracias

> Saludos

> Miquel Boada



Hola Elecktrus,

He realizado la prueba pero el programa me sigue dando el mismo error.
Parece que sea un problema de autorizaciones, pero estoy ejecutando el
código des del mismo servidor con el usuario administrador.

Tienes alguna otra idea de que puede estar pasando. Puede ser un
problema de configuración de Sharepoint.

La verdad es que encuentro varios ejemplos en Internet y he probado el
código de distintas formas, pero en ninguna consigo actualizar el
valor. El hecho que la aplicación se esté ejecutando fuera de
Sharepoint podría ser el problema?

Si tienes alguna idea agradeceré tu aportación

Gracias

Saludos cordiales

Miquel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida