"Updates werden derzeit bei GET -Anfragen nicht zugelassen" Fehler erstellen einer Site -Sammlung
-
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");
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).