Domanda

Sto cercando di creare uno SPWeb in Page_load tramite un controllo sul sito. Ottengo l'errore "La convalida della sicurezza per questa pagina non è valida".

Ho un postback (nessuna richiesta di ricezione) e ha anche provato la sputility.ValidateFormDigest nel metodo OnINIT e direttamente prima dei runwithelevatedPribleAgues.

Ho inserito un controllo formidigest sull'Ascx del mio controllo. La masterpage è Seattle.master e contiene il formidigestplCeholder e il controllo.

funziona sul sistema di dev con account agricole ma non sul sistema integrativo. Sono su SP2013.

Qualche suggerimento?

[Aggiorna 2] OK Il codice in aggiornamento 1 non era il vero problema. Il vero problema si è verificato nella seguente riga:

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CreateMeetingRepost", "document.forms[0].submit();", true);
.

Nella pagina_load sto registrando questo codice per inviare il sito a se stesso per ottenere un postback. Ma dopo che il postback si verifica e il controllo è completamente caricato, la pagina è ottenere un errore di convalida della sicurezza da qualche altra parte (non nel mio codice). Qualche suggerimento?

Tutto quello che voglio fare è creare un ribelli. Ho provato AllowunSafeupdate su rootweb e sito ma non funzionava. SharePoint lancia una Innerexception mentre copia il contentType al nuovo Web.

[Update1 - Non è il problema] Alcuni codice - MeetingManager.CreateMeemeetingAndFillurl crea il sottostingue

SPSecurity.RunWithElevatedPrivileges(() =>
            {
                using (SPSite elevatedSite = new SPSite(SPContext.Current.Site.ID))
                {
                    using (SPLongOperation operation = new SPLongOperation(this.Page))
                    {
                        operation.LeadingHTML = "Meeting wird erstellt";
                        operation.Begin();
                        MeetingManager.CreateMeetingAndFillUrl(elevatedSite, currentMeeting);

                        try
                        {
                            operation.End(currentMeeting.Url);
                        }
                        catch (ThreadAbortException)
                        {
                            // This exception is thrown because the SPLongOperation.End
                            // calls a Response.End internally
                            // see: http://dotnetfollower.com/wordpress/2011/08/sharepoint-how-to-use-splongoperation/
                        }
                    }
                }
            });
.

È stato utile?

Soluzione

I found the problem. All the code is correct but there is an error in March 2013 PU. The FormDigest is set invalid and when doing a post the error occures. This is a real bad error.

http://nikpatel.net/2013/09/06/sharepoint-march-2013-public-update-invalid-formdigest-client-svc-processquery-403-forbidden/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top