我正在使用Windows Server 2008 Enterprise使用SharePoint Server 2007 Enterprise。我部署了一个出版门户。我正在使用VSTS 2008 + C# + .NET 3.5 + ASP.NET + SharePoint Server 2007 SDK开发ASP.NET Web应用程序。

我发现有时我们需要使用spwebapplication.formdigestsettings.enabled = false,以便四处走动,例如使用SharePoint API在网站集合中创建站点。我想知道为什么我们需要执行spwebapplication.formdigestsettings.enabled = false?幕后的原因是什么?

有帮助吗?

解决方案

首先根据MSDN的formDigestSettings的定义

安全验证特定于用户,站点和时间段,并且在可配置的时间之后到期。当用户请求页面时,服务器将返回页面,并插入安全验证。当用户随后提交表单时,服务器会验证安全验证,如果已更改,则将程序执行并停止并提高安全例外。

这样可以确保您发送的请求是真实的,无论如何都不会进行调整或黑客攻击。每次添加此验证时,SharePoint呈现的页面。

回到您的问题,您将不需要使用此formdigestSettings.enabled = walfs始终使用此forse,只要您拥有执行操作所需的权利,您的代码就不会以高架模式运行,并且您正在调用SharePoint网站的操作。

最后一点的原因是SharePoint的所有主页都有此条目

<SharePoint:FormDigest runat=server/>

此条目将确保页面使用FormDigest值渲染。参考 这个链接 了解更多信息。

许可以下: CC-BY-SA归因
scroll top