“信息管理”示例 SharePoint 外接程序
Core.InformationManagement 示例说明如何使用 ASP.NET 提供程序托管的外接程序在网站上获取和设置网站策略。
如果需要执行以下操作,请使用此解决方案:
- 在自定义网站设置期间应用策略设置。
- 创建新的或修改现有的网站策略。
- 创建自定义过期公式。
准备工作
若要开始,请从 GitHub 上的 Office 365 开发人员模式和做法项目中下载 Core.InformationManagement 示例外接程序。
注意
本文中的代码按原样提供,不提供任何明示或暗示的担保,包括对特定用途适用性、适销性或不侵权的默示担保。
建议你在运行此外接程序之前至少创建一个网站策略并将其分配给网站。 否则,外接程序启动时不显示示例数据。 有关详细信息,请参阅 SharePoint Server 中的网站策略概述。
使用 Core.InformationManagement 示例外接程序
启动信息管理外接程序时,起始页面将显示以下信息,如下图中所示:
- 网站的关闭和过期日期。 这些日期特定于某个网站,且基于所应用的网站策略的配置设置。
- 可以应用于网站的所有网站策略。
- 当前应用的网站策略。
- 选择并将新网站策略应用到网站的选项框。
可以从 SharePoint 网站转到在远程主机上运行的外接程序,具体方法是依次选择“最近使用”>“Core.InformationManagement”。 若要返回到 SharePoint 网站,请选择“返回到网站”。
Core.InformationManagementWeb 项目中的 Pages\Default.aspx.cs 文件包含上图所示页面的代码。
Default.aspx.cs 页面的 Page_Load 方法中的以下代码根据应用的网站策略获取并显示网站的关闭和到期日期。 此代码调用 OfficeDevPnP.Core 项目的 GetSiteExpirationDate 和 GetSiteCloseDate 扩展方法。
// Get site expiration and closure dates.
if (cc.Web.HasSitePolicyApplied())
{
lblSiteExpiration.Text = String.Format("The expiration date for the site is {0}", cc.Web.GetSiteExpirationDate());
lblSiteClosure.Text = String.Format("The closure date for the site is {0}", cc.Web.GetSiteCloseDate());
}
Default.aspx.cs 页面的 Page_Load 方法中的以下代码显示可以应用于网站的所有网站策略的名称(包括当前应用的网站策略)。 此代码调用 OfficeDevPnP.Core 项目的 GetSitePolicies 扩展方法。
// List the defined policies.
List<SitePolicyEntity> policies = cc.Web.GetSitePolicies();
string policiesString = "";
foreach (var policy in policies)
{
policiesString += String.Format("{0} ({1}) <BR />", policy.Name, policy.Description);
}
lblSitePolicies.Text = policiesString;
};
Default.aspx.cs 页面的 Page_Load 方法中的以下代码显示当前可用于网站的网站策略的名称。 此代码调用 OfficeDevPnP.Core 项目的 GetAppliedSitePolicy 扩展方法。
// Show the assigned policy.
SitePolicyEntity appliedPolicy = cc.Web.GetAppliedSitePolicy();
if (appliedPolicy != null)
{
lblAppliedPolicy.Text = String.Format("{0} ({1})", appliedPolicy.Name, appliedPolicy.Description);
}
else
{
lblAppliedPolicy.Text = "No policy has been applied";
}
Default.aspx.cs 页面的 Page_Load 方法中的以下代码使用可用的网站策略填充列表,当前已分配给网站的网站策略除外。
// Fill the policies combo.
foreach (var policy in policies)
{
if (appliedPolicy == null || !policy.Name.Equals(appliedPolicy.Name, StringComparison.InvariantCultureIgnoreCase))
{
drlPolicies.Items.Add(policy.Name);
}
}
btnApplyPolicy.Enabled = drlPolicies.Items.Count > 0;
Default.aspx.cs 页面中的以下代码将所选网站策略应用到网站。 原始网站策略将替换为新的网站策略。
protected void btnApplyPolicy_Click(object sender, EventArgs e)
{
if (drlPolicies.SelectedItem != null)
{
cc.Web.ApplySitePolicy(drlPolicies.SelectedItem.Text);
Page.Response.Redirect(Page.Request.Url.ToString(), true);
}
}