因为我通常都是配合UserControl来开发复杂的Webpart的,所以这里指的是包装在Webpart中的UserControl如何以Post方式提交数据到SharePoint数据库。
WSS站点默认不支持WEB应用程序通过POST的方法更新数据库数据,需要在Web应用程序中加入安全较验信息,这类安全较验信息包含两个不同的安全层次:为更新单个站点或站点集的安全较验、为更新网站所在虚拟服务器或WSS设置的安全较验。
第一种安全较验通常是应用程序更新站点中的业务数据时需要使用的安全较验,添加方法如下:
1 在ASPX页面头部加入以下申明(请注意该代码段必须在同一行上,否则编译器较验出错
):<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

2 在ASPX页面中为要提交的数据加入FormDigest较验控件,添加后的表单类似:
<form id="Form1" method="post" runat="server">
<SharePoint:FormDigest runat="server"/>
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 282px; POSITION: absolute; TOP: 282px" runat="server" Text="Button"></asp:Button>
</form>
添加后ASPX页面有时候会出现不能进行可视化设计(原因未知),可以在加入FormDigest之前将页面部局设计好。
3 客户端请求带有验证控件的网页时,服务端为该请求生成HTML页面,同时在页面中加入安全较验信息,当客户端提交数据时,服务端较验安全信息,如果没有修改则不会触发异常,否则触发异常停止执行程序。
4 如果后台代码是执行SharePoint网站的管理任务,则需要更高的权限,做法是在CodeBehind文件中加入以下代码
SPGlobalAdmin globalAdmin = new SPGlobalAdmin();
Context.Items[SPGlobalAdmin.RequestFromAdminPort] = true;
Page.RegisterHiddenField("__REQUESTDIGEST", globalAdmin.AdminFormDigest);

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述