Question

J'essaie de créer un SPWEB dans la page_load via un contrôle sur le site. Je reçois l'erreur "La validation de la sécurité de cette page est invalide".

J'ai un post-pack (pas de demande de demande) et j'ai également essayé la sputilité.validateformdigest dans la méthode Oninit et directement avant RunwithElevatedprivileagues.

J'ai placé un contrôle de formdigest sur l'ASCX de mon contrôle. Le Masterpage est Seattle.Master et contient le titulaire et le contrôle de formdigestPlce.

Cela fonctionne sur le système DEV-SYSTEM avec le compte agricole, mais pas sur l'intégrationystem. Je suis sur SP2013.

Toute suggestion?

[update 2] ok Le code dans la mise à jour 1 n'était pas le vrai problème. Le vrai problème s'est produit dans la ligne suivante:

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

Dans la page_LOAD Je suis inscrit à ce code pour soumettre le site à lui-même pour obtenir un publication. Mais une fois que la fonction de publication et le contrôle est entièrement chargé, la page obtient une erreur de validation de sécurité ailleurs (pas dans mon code). Toute suggestion?

Tout ce que je veux faire, c'est créer un sous-choix. J'ai essayé allowunsafeUpdate sur rootweb et site mais cela n'a pas fonctionné. SharePoint jette une exception Innère lors de la copie de contenutype sur le nouveau Web.

[update1 - pas le problème] Certains code - MeetingManager.CreatemetingAndrfillurl crée le sous-titre

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/
                        }
                    }
                }
            });

Était-ce utile?

La solution

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/

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top