Пример надстройки sharePoint для управления сведениями
В примере Core.InformationManagement показано, как использовать надстройку ASP.NET, размещенную у поставщика, для получения и настройки политики сайта на сайте.
Используйте это решение для следующих задач:
- Примените параметры политики во время процесса подготовки пользовательского сайта.
- Создайте новую или измените существующую политику сайта.
- Создайте настраиваемую формулу срока действия.
Подготовка к работе
Чтобы приступить к работе, скачайте пример надстройки Core.InformationManagement из проекта Office 365 Шаблоны и методики разработчика на сайте GitHub.
Примечание.
Код, приведенный в этой статье, предоставляется "как есть" без какой-либо явной или подразумеваемой гарантии, включая подразумеваемые гарантии пригодности для какой-либо цели, для продажи или гарантии отсутствия нарушения прав иных правообладателей.
Рекомендуется создать хотя бы одну политику сайта и назначить ее сайту перед запуском этой надстройки. В противном случае надстройка запустится без отображения примеров данных. Дополнительные сведения см. в статье Обзор политик сайта в SharePoint Server.
Использование примера надстройки Core.InformationManagement
При запуске надстройки Information Management на начальной странице отображаются следующие сведения, как показано на следующем рисунке:
- Даты закрытия и окончания срока действия сайта. Эти даты относятся к сайту и основаны на параметрах конфигурации применяемой политики сайта.
- Все политики сайта, которые можно применить к сайту.
- Политика сайта, которая применяется в настоящее время.
- Поле параметра для выбора и применения новой политики сайта к сайту.
На сайте SharePoint можно перейти к надстройке, которая выполняется на удаленном узле, выбрав Последние>core.InformationManagement. Чтобы вернуться на сайт SharePoint, выберите Вернуться на сайт.
Файл Pages\Default.aspx.cs в проекте Core.InformationManagementWeb содержит код страницы, отображаемой на предыдущем рисунке.
Следующий код в методе Page_Load страницы Default.aspx.cs извлекает и отображает даты закрытия и окончания срока действия сайта на основе примененной политики сайта. Этот код вызывает методы расширения GetSiteExpirationDate и GetSiteCloseDate проекта OfficeDevPnP.Core.
// 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());
}
В следующем коде в методе Page_Load страницы Default.aspx.cs отображаются имена всех политик сайта, которые можно применить к сайту (включая текущую политику сайта). Этот код вызывает метод расширения GetSitePolicies проекта OfficeDevPnP.Core.
// 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;
};
В следующем коде в методе Page_Load страницы Default.aspx.cs отображается имя политики сайта, применяемой в настоящее время к сайту. При этом вызывается метод расширения GetAppliedSitePolicy проекта OfficeDevPnP.Core.
// 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";
}
Следующий код в методе Page_Load страницы Default.aspx.cs заполняет список доступными политиками сайта, за исключением политики сайта, назначенной сайту в настоящее время.
// 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);
}
}