Sharepoint: Acceso denegado cuando se edita una página (a causa de la disposición de página) o elemento de la lista

StackOverflow https://stackoverflow.com/questions/2064980

Pregunta

Me abren una sesión como la cuenta del sistema, por lo que probablemente no es un "verdadero acceso denegado"! Qué he hecho : - Una página maestra personalizada - Un diseño de página personalizado a partir de un tipo de contenido personalizado (con campos personalizados)

Si agrego un campo personalizado (también conocido como "campo de contenido" en las herramientas de SPD) en mi diseño de la página, consigo un acceso denegado al intentar editar una página que viene de ese diseño de página.

Así, por ejemplo, si agrego en mi diseño de la página esta línea en un "asp: contenido" de la etiqueta:   Me aparece un acceso denegado. Si lo quito, everyting está bien. (El campo "test" es un campo que proviene del tipo de contenido).

¿Alguna idea?

Actualizar

Bueno, he intentado en un sitio en blanco y funcionó bien, así que debe haber algo mal con mi aplicación web: (

ACTUALIZACIÓN # 2

Parece que esta línea en la página maestra me da la denegación de acceso:

<SharePoint:DelegateControl runat="server" ControlId="PublishingConsole" Visible="false"
    PrefixHtml="&lt;tr&gt;&lt;td colspan=&quot;0&quot; id=&quot;mpdmconsole&quot; class=&quot;s2i-consolemptablerow&quot;&gt;"
    SuffixHtml="&lt;/td&gt;&lt;/tr&gt;"></SharePoint:DelegateControl>

ACTUALIZACIÓN # 3

I Found http://odole.wordpress.com/2009/01/30/access-denied-error-message-while-editing-properties-of-any-document- in-a-musgo-document-library /

Parece un problema similar. Pero nuestras versiones de SharePoint son las últimas actualizaciones. Voy a tratar de usar el código que se supone va a reparar las listas y publicar otra actualización.

** ACTUALIZACIÓN # 4 **

OK ... He probado el código que he encontrado en la página anterior (ver enlace) y parece fijar la cosa. No he probado la solución a 100%, pero hasta ahora, tan bueno. Aquí está el código que hice para un receptor de función (utilicé el código publicado desde el siguiente enlace):

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;

using System.Xml;

namespace MyWebsite.FixAccessDenied
{
    class FixAccessDenied : SPFeatureReceiver
    {
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            FixWebField(SPContext.Current.Web);
        }

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            //throw new Exception("The method or operation is not implemented.");
        }

        public override void FeatureInstalled(SPFeatureReceiverProperties properties)
        {
            //throw new Exception("The method or operation is not implemented.");
        }

        public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
        {
            //throw new Exception("The method or operation is not implemented.");
        }

        static void FixWebField(SPWeb currentWeb)
        {

            string RenderXMLPattenAttribute = "RenderXMLUsingPattern";

            SPSite site = new SPSite(currentWeb.Url);
            SPWeb web = site.OpenWeb();

            web.AllowUnsafeUpdates = true;
            web.Update();

            SPField f = web.Fields.GetFieldByInternalName("PermMask");
            string s = f.SchemaXml;
            Console.WriteLine("schemaXml before: " + s);
            XmlDocument xd = new XmlDocument();
            xd.LoadXml(s);
            XmlElement xe = xd.DocumentElement;
            if (xe.Attributes[RenderXMLPattenAttribute] == null)
            {
                XmlAttribute attr = xd.CreateAttribute(RenderXMLPattenAttribute);
                attr.Value = "TRUE";
                xe.Attributes.Append(attr);
            }

            string strXml = xe.OuterXml;
            Console.WriteLine("schemaXml after: " + strXml);
            f.SchemaXml = strXml;

            foreach (SPWeb sites in site.AllWebs)
            {
                FixField(sites.Url);
            }

        }

        static void FixField(string weburl)
        {
            string RenderXMLPattenAttribute = "RenderXMLUsingPattern";

            SPSite site = new SPSite(weburl);
            SPWeb web = site.OpenWeb();
            web.AllowUnsafeUpdates = true;
            web.Update();

            System.Collections.Generic.IList<Guid> guidArrayList = new System.Collections.Generic.List<Guid>();

            foreach (SPList list in web.Lists)
            {
                guidArrayList.Add(list.ID);
            }

            foreach (Guid guid in guidArrayList)
            {
                SPList list = web.Lists[guid];
                SPField f = list.Fields.GetFieldByInternalName("PermMask");
                string s = f.SchemaXml;
                Console.WriteLine("schemaXml before: " + s);
                XmlDocument xd = new XmlDocument();
                xd.LoadXml(s);
                XmlElement xe = xd.DocumentElement;
                if (xe.Attributes[RenderXMLPattenAttribute] == null)
                {
                    XmlAttribute attr = xd.CreateAttribute(RenderXMLPattenAttribute);
                    attr.Value = "TRUE";
                    xe.Attributes.Append(attr);
                }
                string strXml = xe.OuterXml;
                Console.WriteLine("schemaXml after: " + strXml);
                f.SchemaXml = strXml;
            }

        }

    }
}

Sólo hay que poner ese código como un receptor de funciones, y que se active en el sitio de raíz, debe parabólicos todos los subsitios y corregir las listas.

Resumen

Se obtiene un Acceso denegado cuando se edita un o un la

Se continúa recibiendo el error incluso si está registrado como el Superadministrador del **** f en el mundo (lo siento, pasé 3 días en ese error)

Para mí, sucedió después de una importación de otra definición de sitio (un archivo cmp)

En realidad, se supone que hay un error conocido y se supone que debe ser fijado desde febrero de 2009, pero parece que no lo es.

El código que he publicado anteriormente debería solucionar el asunto.

¿Fue útil?

Solución 3

Vea el código que he publicado en la edición del puesto. Se fija mi problema.

Otros consejos

Trate de publicar su MasterPage y diseños de página, esta es la razón más común. Desde la cuenta del sistema es godmode, que no conseguirá ese error.

En SharePoint Designer no se puede hacer el último paso en el flujo de trabajo editorial (aprobación), por lo que:

SharePoint Designer:
Check In => Publicar versión principal, pulsa el botón OK o ir a / _catalogs / masterpage en el sitio.

A continuación, y utilizar el menú contextual para Aprobar la MasterPage y diseños.

Algunas ideas:

  • Compruebe si alguna pieza en su web personalizada diseño de página y la página maestra no están registrados como seguros.
  • ¿Ha definido su propio tipo de campo personalizado, al igual que escribir una clase que se extiende SPField? Si es así, ¿está utilizando una costumbre control de campo? Si es así, comprobar si se está haciendo todo lo que puede necesitar privilegios elevados.
  • Del mismo modo, compruebe si hay algún modo de edición paneles que contienen piezas de la tela de controles web que podrían estar tratando de hacer algo que necesita privilegios elevados.

El problema parece ser causado por un error en la función stsadm -o export en ciertas versiones de SharePoint (lo tengo haciendo una exportación desde un servidor RTM MOSS 2007). La importación del archivo de exportación falsa causa el problema "editar denegado de acceso" en todas las listas de nueva creación. Los parches para la versión posterior de Microsoft Fix stsadm -o export, pero no arreglo las listas rotos; que requiere un procedimiento como tinky05 's.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top