"Updates werden derzeit bei GET -Anfragen nicht zugelassen" Fehler erstellen einer Site -Sammlung

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/1594

  •  16-10-2019
  •  | 
  •  

Frage

Ich verwende SharePoint Server 2007 Enterprise mit Windows Server 2008 Enterprise. Ich habe ein Publishing -Portal bereitgestellt. Ich entwickle eine ASP.NET -Webanwendung mit VSTS 2008 + C# + .NET 3.5 + ASP.NET + SharePoint Server 2007 SDK.

Hier sind meine Code -Snippets und ich habe Fehler erhalten - "Updates werden derzeit bei GET -Anfragen nicht zugelassen". Irgendwelche Ideen, wie man repariert?

Microsoft.SharePoint.SPException: Updates are currently disallowed on GET requests. To allow updates on a GET, set the 'AllowUnsafeUpdates' property on SPWeb.

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                SPWebApplication webApp = SPContext.Current.Site.WebApplication;
                SPSiteCollection siteCollections = webApp.Sites;
                foreach (SPSite item in siteCollections)
                {
                    SPWeb webItem = item.OpenWeb();
                    webItem.AllowUnsafeUpdates = true;
                }

                SPSite newSiteCollection = siteCollections.Add("sites/myblog",
                    "New Sample Site", "New Sample Site Description", 1033, "BLOG#0",
                    "foo\\foouser", "Owner name", "owneremail@foo.com");
            }
            catch (Exception ex)
            {
                Response.Write(ex.ToString() + "\t" + ex.StackTrace);
            }
        }

Update 1: Ich habe den gleichen Fehler mit dem folgenden Code getroffen.

        SPContext.Current.Web.AllowUnsafeUpdates = true;
        SPWebApplication webApp = SPContext.Current.Site.WebApplication;
        SPSiteCollection siteCollections = webApp.Sites;
        /*
        foreach (SPSite item in siteCollections)
        {
            SPWeb webItem = item.OpenWeb();
            webItem.AllowUnsafeUpdates = true;
        }
        */
            SPSite newSiteCollection = siteCollections.Add("sites/myblog",
                "New Sample Site", "New Sample Site Description", 1033, "BLOG#0",
                "foo\\foouser", "Owner name", "owneremail@foo.com");
War es hilfreich?

Lösung

Beachten Sie, dass Sp -Site auch über eine Dably -DenunSafeUpdates -Eigenschaft verfügt, die Sie ausprobieren können.

Wenn Sie dies ändern, tun Sie dies in einem Versuch/schließlich, damit Sie Ihre Website nicht für Kreuzungsangriffe von Skripten ausführen können. Websites, also möchten Sie das vielleicht wieder aktivieren!).

Schließlich wird die Eigentum von DenUnSafeUpdates auf ihren Standardwert zurückgesetzt (jeder Operation, der spweb.invalidat () unter anderem aufruft, aber bis dahin wird Ihre Site für XSS -Angriffe anfällig.

Andere Tipps

Ich denke, Sie müssen setzen AllowUnsafeUpdates im Web, das diesen Code anruft.

bool currentSetting = SPContext.Current.Web.AllowUnsafeUpdates;
SPContext.Current.Web.AllowUnsafeUpdates = true;

... do your work here

SPContext.Current.Web.AllowUnsafeUpdates = currentSetting;

Wenn Sie dies wirklich mit einer Erregung tun möchten, sollte die Ausführung von "Sputility.ValidateFormDigest ()" auch den Trick ausführen, ohne die Eigenschaft erlaubte, sich zu berühren (was wirklich etwas ist, das Sie meiner Meinung nach vermeiden sollten).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top